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 相关文章推荐
jQuery仿Excel表格编辑功能的实现代码
May 01 Javascript
详解JavaScript操作HTML DOM的基本方式
Oct 21 Javascript
全面解析Bootstrap手风琴效果
Apr 17 Javascript
JavaScript模版引擎的基本实现方法浅析
Feb 15 Javascript
AngularJS中的表单简单入门
Jul 28 Javascript
JS动态给对象添加属性和值的实现方法
Oct 21 Javascript
js仿iphone秒表功能 计算平均数
Jan 11 Javascript
JS实现JSON.stringify的实例代码讲解
Feb 07 Javascript
基于JavaScript表单脚本(详解)
Oct 18 Javascript
JavaScript 跨域之POST实现方法
May 07 Javascript
JavaScript相等运算符的九条规则示例详解
Oct 20 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
Apr 06 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
神族 PROTOSS 概述
2020/03/14 星际争霸
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
jquery中each方法示例和常用选择器
2014/07/08 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
js实现的后台左侧管理菜单代码
2015/09/11 Javascript
jQuery中show与hide方法用法示例
2016/09/16 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
Vue组件开发初探
2017/02/14 Javascript
Vuex中mutations与actions的区别详解
2018/03/01 Javascript
浅谈Angularjs中不同类型的双向数据绑定
2018/07/16 Javascript
详解element-ui日期时间选择器的日期格式化问题
2019/04/08 Javascript
如何通过shell脚本自动生成vue文件详解
2019/09/10 Javascript
python检测远程端口是否打开的方法
2015/03/14 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
基于opencv的selenium滑动验证码的实现
2020/07/24 Python
python语言实现贪吃蛇游戏
2020/11/13 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
HTML5进度条特效
2014/12/18 HTML / CSS
Move Free官方海外旗舰店:美国骨关节健康专业品牌
2017/12/06 全球购物
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
货代行业个人求职简历的自我评价
2013/10/22 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
法人委托书
2014/07/31 职场文书
护理见习报告范文
2014/11/03 职场文书
高三物理教学反思
2016/02/20 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
Pytest中conftest.py的用法
2021/06/27 Python
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL
《总之就是很可爱》新作短篇动画《总之就是很可爱~制服~》将于2022年夏天播出
2022/04/07 日漫
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python