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的$命名冲突详细解析
Dec 28 Javascript
jquery操作 iframe的方法
Dec 03 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
Sep 24 Javascript
BootStrap创建响应式导航条实例代码
May 31 Javascript
JavaScript地理位置信息API
Jun 11 Javascript
Ajax与服务器(JSON)通信实例代码
Nov 05 Javascript
js实现图片切换(动画版)
Dec 25 Javascript
微信小程序 弹窗自定义实例代码
Mar 08 Javascript
H5上传本地图片并预览功能
May 08 Javascript
javascript字体颜色控件的开发 JS实现字体控制
Nov 27 Javascript
公众号SVG动画交互实战代码
May 31 Javascript
使用js获取身份证年龄的示例代码
Dec 11 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 小乘法表实现代码
2009/07/16 PHP
PHP获取数组中某元素的位置及array_keys函数应用
2013/01/29 PHP
php curl模拟post请求小实例
2013/11/13 PHP
php基本函数汇总
2015/07/09 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
php中的登陆login实例代码
2016/06/20 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
Gird事件机制初级读本
2007/03/10 Javascript
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
JavaScript 面向对象之命名空间
2010/05/04 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
原生JS实现图片翻书效果
2017/02/16 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
Angular刷新当前页面的实现方法
2018/11/21 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
2019/06/03 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
python 内置函数filter
2017/06/01 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
python线程的几种创建方式详解
2019/08/29 Python
HTML5中input输入框默认提示文字向左向右移动的示例代码
2020/09/10 HTML / CSS
Manduka官网:瑜伽垫、瑜伽毛巾和服装
2018/07/02 全球购物
探亲邀请信范文
2014/01/30 职场文书
《桂林山水》教学反思
2014/02/08 职场文书
幼儿园评语大全
2014/04/17 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
领导干部作风建设剖析材料
2014/10/11 职场文书
2014年团工作总结
2014/11/27 职场文书
开除员工通知
2015/04/22 职场文书
新年晚会开场白
2015/05/29 职场文书
高中历史教学反思
2016/02/19 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书