BootStrap智能表单实战系列(七)验证的支持


Posted in Javascript onJune 13, 2016

但凡是涉及到用户编辑信息然后保存的页面,都涉及到一个数据是否符合要求的检查,需要客服端和服务器端的校验的问题;

客服端的校验主要是为了提高用户体验,而服务器端的校验为了数据的合格性

该插件也为您支持到了表单验证,在需要验证的列的配置中加一项required:true 再生成表单元素前面的label的时候会自动在label前面生成一个*,用于提示 改列数据会进行校验

验证是使用了jquery validation,具体使用方式请参照jquery validation的api

代码如下(页面地址:https://github.com/xiexingen/Bootstrap-SmartForm/blob/master/demo/form5-Validation.html):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表单验证</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../css/bootstrap.css">
<!--自定义站点样式-->
<link rel="stylesheet" href="../css/site.css">
<script src="../lib/jquery.js"></script>
<script src="../lib/jquery.validate.js"></script>
<script src="../lib/bootstrap.js"></script>
<!--工具方法-->
<script src="../scripts/global.js"></script>
<!--插件-->
<script src="../scripts/plugin.js"></script>
</head>
<body>
<div class="panel panel-default">
<div class="panel-heading">
<label>带验证的智能表单</label>
<div class="pull-right">
<button id="btnSubmit" class="btn btn-primary btn-xs">提交表单</button>
</div>
</div>
<div class="panel-body">
<form action="#" id="formContainer" class="form form-horizontal"></form>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading"><label>介绍</label></div>
<div class="panel-body">
<h3 class="lead">表单的验证</h3>
<blockquote>
<p>使用jquery validation验证,其他验证方法请参考jquery validation,自定义验证global.Fn.setDefaultValidator()方法在global.js文件中,改文件属于工具文件,里面定义了很多工具方法,包括表单序列化、日期格式化、数组判断、设置默认验证、显示消息、弹窗、初始化插件、初始化表单、文件下载、表单保存等</p>
</blockquote>
</div>
</div>
<script>
$(function () {
var eles=[
[
{label:{text:'自定义用户名:'},ele:{type:'text',name:'UserName',title:'用户名:',required:true}},
{ele:{type:'radio',name:'sex',title:'性别:',items:[{text:'男',value:1},{text:'女',value:2}]}},
{ele:{type:'checkbox', name:'plant',title:'使用平台:',items:[{text:'APP',value:'app'},{text:'web',value:'web'}]}} 
],
[
{ele:{type:'select',name:'province',title:'省份:',withNull:true,items:[{text:'广东',value:'GD'},{text:'湖南',value:'HN'}]}},
{ele:{pre:{text:'<input type="radio">'},type:'text',name:'displayName',title:'显示名称:'}},
{ele:{type:'search',title:'产品',id:'ProductName',required:true}}
],
[
{ele:{type:'datetime',name:'FromeDate',title:'有效期:'}},
{ele:{type:'datetime',name:'ToDate',title:'~'}},
]
];
//隐藏表单元素主要用于编辑时候后台可以区别开来
var hides = [{ id: 'primaryKey' }];
var bsForm = new BSForm({ eles: eles, hides: hides, autoLayout: '1,3' }).Render('formContainer',function(bf){
var model={primaryKey:1,UserName:'xxg',sex:1,plant:['app','web'],province:'GD',displayName:'TEST',ProductName:'笔记本',FromeDate:'2015-06-10',ToDate:'2015-08-08'};
bf.InitFormData(model);
});
$("#btnSubmit").bind('click',function () {
if (!$("#formContainer").valid()) {
alert("验证没通过!");
}
else{
var postData=bsForm.GetFormData();
alert("获取到的表达数据为:"+JSON.stringify(postData)); 
}
});
//使用自定义配置的验证样式处理
global.Fn.setDefaultValidator();
//定义验证规则
$("#formContainer").validate({
rules:{
UserName:{
required:true,
minlength:3,
maxlength:10
},
ProductName:{required:true}
}
});
});
</script>
</body></html>

代码中为UserName列配置了必填和长度验证,运行界面将UserName的值删除,提交表单可以看到效果:

效果图如下:

BootStrap智能表单实战系列(七)验证的支持

Javascript 相关文章推荐
js控制div及网页相关属性的代码
Dec 19 Javascript
js实现仿百度瀑布流的方法
Feb 05 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
Aug 11 Javascript
JQuery validate插件Remote用法大全
May 15 Javascript
Js 获取当前函数参数对象的实现代码
Jun 20 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
Nov 15 Javascript
微信小程序左滑删除效果的实现代码
Feb 20 Javascript
JS实现的找零张数最小问题示例
Nov 28 Javascript
详解Vue.js自定义tipOnce指令用法实例
Dec 19 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
Dec 20 Javascript
vue+Element实现搜索关键字高亮功能
May 28 Javascript
Vue项目打包压缩的实现(让页面更快响应)
Mar 10 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
Jun 13 #Javascript
js 截取或者替换字符串中的数字实现方法
Jun 13 #Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
Jun 13 #Javascript
BootStrap智能表单实战系列(四)表单布局介绍
Jun 13 #Javascript
JS/jQ实现免费获取手机验证码倒计时效果
Jun 13 #Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
Jun 13 #Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
Jun 13 #Javascript
You might like
实用函数4
2007/11/08 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
php读取文件内容的方法汇总
2015/01/24 PHP
PHP微信开发之二维码生成类
2015/06/26 PHP
php使用number_format函数截取小数的方法分析
2016/05/27 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
运用jquery实现table单双行不同显示并能单行选中
2009/07/25 Javascript
jquery-easyui关闭tab自动切换到前一个tab
2010/07/29 Javascript
js 代码优化点滴记录
2012/02/19 Javascript
Extjs优化(一)删除冗余代码提高运行速度
2013/04/15 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
深入剖析JavaScript中的枚举功能
2014/03/06 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
2017/10/21 Javascript
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
Python MD5文件生成码
2009/01/12 Python
Python base64编码解码实例
2015/06/21 Python
python购物车程序简单代码
2018/04/18 Python
python 获取当天凌晨零点的时间戳方法
2018/05/22 Python
python版大富翁源代码分享
2018/11/19 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
keras实现多种分类网络的方式
2020/06/11 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
美国在线宠物商店:Chewy
2019/01/12 全球购物
土木工程毕业生自荐信
2013/11/12 职场文书
城市规划应届毕业生自荐信
2014/07/04 职场文书
离婚协议书怎么写
2015/01/26 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
如何更改Win11声音输出设备?Win11声音输出设备四种更改方法
2022/04/08 数码科技