BootStrap Validator使用注意事项(必看篇)


Posted in Javascript onSeptember 28, 2016

如果你使用的前端框架是bootstrap,那么前端验证框架就不必考虑了,bootstrapvalidator是最好的选择,它和bootstrap的结合最完美,不过要注意版本的问题,针对bootstrap2和bootstrap3有不同的版本。

下面是我遇到的两个注意事项,自己做个笔记:

1、为每个要验证的表单元素添加name属性

例如:

<div class="form-group"> 
<input type="text" placeholder="请输入短信验证码" id="smsCaptcha" name="smsCaptcha" class="form-control" 
data-bv-notempty data-bv-notempty-message="验证码不能为空" 
data-bv-regexp="true" data-bv-regexp-regexp="[0-9]{6}" data-bv-regexp-message="验证码格式不正确" > 
</div> <div class="form-group"> 
<input type="email" class="form-control" id="exampleInputEmail1" placeholder="Enter email" 
data-bv-notempty data-bv-notempty-message="验证码不能为空" > 
</div>

上面这个例子中,第一个表单元素添加了name属性,第二个表单元素没有name属性,而这两个表单元素都使用了非空验证,最终效果如下:

BootStrap Validator使用注意事项(必看篇)

从结果可以看出,如果要验证一个表单项,则该表单项必须有name属性。否则验证将不起作用。

2、为保持良好的效果,表单元素最好放在div.form-group里面

例如下面这个例子:

<label for="exampleInputEmail1">用户名</label> 
<div class="input-group" > 
<input type="text" class="form-control required" placeholder="用户名" id="username" name="username" data-bv-notempty data-bv-notempty-message="请输入用户名" /> <span class="input-group-addon"> 
<span class="glyphicon glyphicon-user">
</span> 
</span> 
</div>

用户名输入框及其label直接放在了form元素下面,则最终产生的效果如下:

BootStrap Validator使用注意事项(必看篇)

当输入错误时的提示信息位置在整个form表单的下面,样式发生了极大的变化,虽然能达到验证的效果,但是样式却难以令人接受,解决办法就是将需要验证的表单元素放在div.form-group下面:

<div class="form-group"> 
<label for="exampleInputEmail1">用户名</label> 
<div class="input-group" > 
<input type="text" class="form-control required" placeholder="用户名" id="username" name="username" data-bv-notempty data-bv-notempty-message="请输入用户名" /> <span class="input-group-addon"> 
<span class="glyphicon glyphicon-user">
</span> 
</span> 
</div> 
</div>

BootStrap Validator使用注意事项(必看篇)

3、防止表单重复提交问题

在未引入bootstrapvalidator之前,自己写过一段js代码来防止表单提交,当用户点击提交按钮时候,将提交按钮置灰,代码如下:

var form = $('form'); 
var formType = form.attr('class'); 
if(formType != null){ 
//用get和post标识表单类型 
//get用于标识搜索类型的表单 
//post用于标识添加,更新类型的表单 
var get = formType.indexOf('get'); 
var post = formType.indexOf('post'); 
form.submit(function(){ 
if(get != -1){ 
return ; 
} 
if(post != -1){ 
if(!submited){ 
submited = true; 
$("button[type=submit]").prop('disabled',true); 
}else{ 
return false; 
} 
} 
}); 
}

但是引入bootstrapvalidator后却和这段代码冲突,具体表现为,如果验证出错,例如,某个input必填项没有填写时就提交了表单,此时bootstrapvalidator会提示你这个input为必填的,此时提交按钮为disable状态,直到你填入数据后,按钮才为正常可提交状态,问题就在这,即使你填入了正常的数据,按钮也为正常状态,可是表单却无法提交。排查了大半天,问题就在于上段js代码。

其实bootstrapvalidator已经对重复提交做了设计,如果一个表单需要经过bootstrapvalidator验证,点击提交按钮的时候,提交按钮会置灰,直到服务器返回响应。那么,如果一个表单不需要验证呢,比如一个搜索表单,此时可以给表单一个class,如validation-form,在js主函数里面调用$("form.validation-form").bootstrapValidator();将验证器置空即可。

推荐阅读:

以上所述是小编给大家介绍的BootStrap Validator使用注意事项(必看篇),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js用Date对象处理时间实现思路及代码
Jan 31 Javascript
location.href用法总结(最主要的)
Dec 27 Javascript
jQuery判断checkbox是否选中的3种方法
Aug 12 Javascript
jQuery中$.each使用详解
Jan 29 Javascript
JavaScript中的toLocaleDateString()方法使用简介
Jun 12 Javascript
3个可以改善用户体验的AngularJS指令介绍
Jun 18 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
Jul 12 Javascript
深入理解javascript函数参数与闭包
Dec 12 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
Feb 13 Javascript
node前端开发模板引擎Jade的入门
May 11 Javascript
微信小程序之自定义组件的实现代码(附源码)
Aug 02 Javascript
vue中设置、获取、删除cookie的方法
Sep 21 Javascript
使用BootStrapValidator完成前端输入验证
Sep 28 #Javascript
request请求获取参数的实现方法(post和get两种方式)
Sep 27 #Javascript
使用JavaScript获取Request中参数的值方法
Sep 27 #Javascript
详解JavaScript权威指南之对象
Sep 27 #Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
Sep 27 #Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
Sep 27 #Javascript
ReactNative页面跳转实例代码
Sep 27 #Javascript
You might like
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
国外PHP程序员的13个好习惯小结
2012/02/20 PHP
PHP中的函数-- foreach()的用法详解
2013/06/24 PHP
PHP实现的登录,注册及密码修改功能分析
2016/11/25 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
javascript 读取图片文件的大小
2009/06/25 Javascript
jquery 分页控件实现代码
2009/11/30 Javascript
jquery photoFrame 图片边框美化显示插件
2010/06/28 Javascript
用js代码改变单选框选中状态的简单实例
2013/12/18 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
浅谈js中字符和数组一些基本算法题
2016/08/15 Javascript
react.js 获取真实的DOM节点实例(必看)
2017/04/17 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
layer.prompt输入层的例子
2019/09/24 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
Python GAE、Django导出Excel的方法
2008/11/24 Python
python使用Berkeley DB数据库实例
2014/09/26 Python
Python的numpy库中将矩阵转换为列表等函数的方法
2018/04/04 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
Python: 传递列表副本方式
2019/12/19 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
Python Pivot table透视表使用方法解析
2020/09/11 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
2020/10/15 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
全面介绍python中很常用的单元测试框架unitest
2020/12/14 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
伦敦著名的运动鞋综合商店:Footpatrol
2019/03/25 全球购物
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
大学生个人求职信范文
2013/09/21 职场文书
业务员简历自我评价
2014/03/06 职场文书
新教师培训心得体会
2014/09/02 职场文书
企业战略合作意向书
2015/05/08 职场文书
redis内存空间效率问题的深入探究
2021/05/17 Redis