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 25 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
Feb 26 Javascript
js图片预加载示例
Apr 30 Javascript
js和jquery如何获取图片真实的宽度和高度
Sep 28 Javascript
在 Express 中使用模板引擎
Dec 10 Javascript
Angularjs实现分页和分页算法的示例代码
Dec 23 Javascript
详解Javascript百度地图接口开发文档中的类和方法
Feb 07 Javascript
react实现pure render时bind(this)隐患需注意!
Mar 09 Javascript
vue中的非父子间的通讯问题简单的实例代码
Jul 19 Javascript
vue中eslintrc.js配置最详细介绍
Dec 21 Javascript
AngularJS动态生成select下拉框的方法实例
Nov 17 Javascript
关于vue 项目中浏览器跨域的配置问题
Nov 10 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
php magic_quotes_gpc的一点认识与分析
2008/08/18 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
filemanage功能中用到的common.js
2007/04/08 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
2010/11/19 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
Python实现代码统计工具(终极篇)
2016/07/04 Python
Tensorflow卷积神经网络实例
2018/05/24 Python
Python通过paramiko远程下载Linux服务器上的文件实例
2018/12/27 Python
python导入模块交叉引用的方法
2019/01/19 Python
Python 使用matplotlib模块模拟掷骰子
2019/08/08 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
2019/08/22 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
python 一维二维插值实例
2020/04/22 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
深入浅析pycharm中 Make available to all projects的含义
2020/09/15 Python
python 6行代码制作月历生成器
2020/09/18 Python
捷克时尚网上商店:OTTO
2018/03/15 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
一套SQL笔试题
2016/08/14 面试题
英文简历中的自我评价
2013/10/06 职场文书
工商管理实习生自我鉴定范文
2013/12/18 职场文书
表彰先进集体通报
2014/01/12 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
2014年领班工作总结
2014/11/25 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
毕业设计致谢语
2015/05/14 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL
Java中的继承、多态以及封装
2022/04/11 Java/Android