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圆形浮动菜单特效代码
Mar 03 Javascript
javascript返回顶部效果(自写代码)
Jan 06 Javascript
js去除重复字符串两种实现方法
Jan 09 Javascript
jQuery $命名冲突解决方案汇总
Nov 13 Javascript
jquery中radio checked问题
Mar 16 Javascript
JavaScript获取URL汇总
Jun 08 Javascript
Jquery on绑定的事件 触发多次实例代码
Dec 08 Javascript
jQuery实现QQ空间汉字转拼音功能示例
Jul 10 jQuery
JS简单判断是否在微信浏览器打开的方法示例
Jan 08 Javascript
javascript实现简易聊天室
Jul 12 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
Sep 06 Javascript
vant组件中 dialog的确认按钮的回调事件操作
Nov 04 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
编译问题
2006/10/09 PHP
无JS,完全php面向过程数据分页实现代码
2012/08/27 PHP
解析php中static,const与define的使用区别
2013/06/18 PHP
ThinkPHP自动填充实现无限级分类的方法
2014/08/22 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
php array_reverse 以相反的顺序返回数组实例代码
2017/04/11 PHP
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
Google 静态地图API实现代码
2010/11/19 Javascript
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
2016/05/19 Javascript
JavaScript制作颜色反转小游戏
2016/09/25 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
弱类型语言javascript中 a,b 的运算实例小结
2019/08/07 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
python二分查找算法的递归实现方法
2016/05/12 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
小学校园活动策划
2014/01/30 职场文书
报告会主持词
2014/04/02 职场文书
敬老模范事迹
2014/05/21 职场文书
揭牌仪式策划方案
2014/05/28 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
幼儿园辞职信范文
2015/02/27 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
党支部对转正的意见
2015/06/02 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android