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 相关文章推荐
非常不错的功能强大代码简单的管理菜单美化版
Jul 09 Javascript
Egret引擎开发指南之编译项目
Sep 03 Javascript
jQuery的deferred对象详解
Nov 12 Javascript
JavaScript动态设置div的样式的方法
Dec 26 Javascript
JavaScript中通过提示框跳转页面的方法
Feb 14 Javascript
JavaScript的函数式编程基础指南
Mar 19 Javascript
Bootstrap三种表单布局的使用方法
Jun 21 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
Nov 24 Javascript
JS实现在线ps功能详解
Jul 31 Javascript
jquery实现的放大镜效果示例
Feb 24 jQuery
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
Aug 14 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
Oct 02 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
Yii视图CGridView实现操作按钮定义地址示例
2016/07/14 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
2017/10/13 PHP
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
2017/10/31 Javascript
Promise扫盲贴
2019/06/24 Javascript
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
JS中准确判断变量类型的方法
2020/06/01 Javascript
[02:26]DOTA2英雄米拉娜基础教程
2013/11/25 DOTA
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
python控制台中实现进度条功能
2015/11/10 Python
在python中实现将一张图片剪切成四份的方法
2018/12/05 Python
python+os根据文件名自动生成文本
2019/03/21 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
生产部经理岗位职责
2013/12/16 职场文书
企业宗旨标语
2014/06/10 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
个人总结与自我评价
2014/09/18 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
学校查摆问题整改措施
2014/09/28 职场文书
2014年乡镇工会工作总结
2014/12/02 职场文书
党员个人自我评价
2015/03/03 职场文书
人事任命通知
2015/04/20 职场文书
2015年人民调解工作总结
2015/05/18 职场文书
Matlab如何实现矩阵复制扩充
2021/06/02 Python
Python序列化与反序列化相关知识总结
2021/06/08 Python