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 相关文章推荐
基于jquery的15款幻灯片插件
Apr 10 Javascript
基于jquery的点击链接插入链接内容的代码
Jul 31 Javascript
jquery1.10给新增元素绑定事件的方法
Mar 06 Javascript
js定时调用方法成功后并停止调用示例
Apr 08 Javascript
javascript自动切换焦点控制效果完整实例
Feb 02 Javascript
Angular中的$watch方法详解
Sep 18 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
Feb 21 Javascript
Vue组件系列开发之模态框
Apr 18 Javascript
微信小程序仿通讯录功能
Apr 09 Javascript
js中调用微信的扫描二维码功能的实现代码
Apr 11 Javascript
vue data变量相互赋值后被实时同步的解决步骤
Aug 05 Javascript
jQuery实现影院选座订座效果
Apr 13 jQuery
使用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
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
PHP远程采集图片详细教程
2014/07/01 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
JS+CSS实现一个气泡提示框
2013/08/18 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
2014/01/24 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
python中字典(Dictionary)用法实例详解
2015/05/30 Python
完美解决Python2操作中文名文件乱码的问题
2017/01/04 Python
使用python进行拆分大文件的方法
2018/12/10 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
python批量修改文件名的示例
2020/09/27 Python
Python-split()函数实例用法讲解
2020/12/18 Python
h5实现获取用户地理定位的实例代码
2017/07/17 HTML / CSS
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
附答案的Java面试题
2012/11/19 面试题
什么是SCM(软件配置管理)
2014/08/16 面试题
升国旗仪式主持词
2014/03/19 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
四风问题自查自纠工作情况报告
2014/10/28 职场文书
社区母亲节活动总结
2015/02/10 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python
JavaScript实现栈结构详细过程
2021/12/06 Javascript