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 html动态生成select标签出问题的解决方法
Nov 20 Javascript
jquery防止重复执行动画避免页面混乱
Apr 22 Javascript
jQuery实现不断闪烁文字的方法
May 15 Javascript
js removeChild 方法深入理解
Aug 16 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
Aug 19 Javascript
jQuery实现的网页换肤效果示例
Sep 20 Javascript
easyUI combobox实现联动效果
Jan 17 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
Sep 06 jQuery
echarts整合多个类似option的方法实例
Jul 10 Javascript
详解Vue中使用插槽(slot)、聚类插槽
Apr 12 Javascript
解决vue打包报错Unexpected token: punc的问题
Oct 24 Javascript
在VUE中使用lodash的debounce和throttle操作
Nov 09 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设计模式 Decorator(装饰模式)
2011/06/26 PHP
php数据库配置文件一般做法分享
2012/07/07 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
经验几则 推荐
2006/09/05 Javascript
关于JS管理作用域的问题
2013/04/10 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
2014/03/12 Javascript
jQuery预加载图片常用方法
2015/06/15 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
漂亮实用的页面loading(加载)封装代码
2017/02/03 Javascript
bootstrap table 多选框分页保留示例代码
2017/03/08 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
微信小程序Echarts覆盖正常组件问题解决
2019/07/13 Javascript
vue.js 实现a标签href里添加参数
2019/11/12 Javascript
Jquery cookie插件实现原理代码解析
2020/08/04 jQuery
微信小程序入门之指南针
2020/10/22 Javascript
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
[02:21]2018完美盛典章节片——初心
2018/12/17 DOTA
python3 实现的人人影视网站自动签到
2016/06/19 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
Pytorch实现的手写数字mnist识别功能完整示例
2019/12/13 Python
python绘制分布折线图的示例
2020/09/24 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
11月升旗仪式讲话稿
2014/02/15 职场文书
电气自动化专业职业规划范文
2014/02/16 职场文书
写好自荐信需做到的5要点
2014/03/07 职场文书
股权转让意向书
2014/04/01 职场文书
计算机专业毕业生求职信
2014/04/30 职场文书
党员民主评议自我评价
2014/10/20 职场文书
创业计划书介绍
2019/04/24 职场文书
深入理解Vue的数据响应式
2021/05/15 Vue.js
在Spring-Boot中如何使用@Value注解注入集合类
2021/08/02 Java/Android
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏