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 相关文章推荐
prototype1.4中文手册
Sep 22 Javascript
Jquery iframe内部出滚动条
Feb 11 Javascript
JS面向对象编程 for Cookie
Sep 19 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
Nov 20 Javascript
JS中Location使用详解
May 12 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
Oct 18 Javascript
seajs模块之间依赖的加载以及模块的执行
Oct 21 Javascript
vue中mint-ui环境搭建详细介绍
Apr 06 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
Jul 10 Javascript
详解微信小程序之一键复制到剪切板
Apr 24 Javascript
js实现微信聊天效果
Aug 09 Javascript
Vue的过滤器你真了解吗
Feb 24 Vue.js
使用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 session 错误
2009/05/21 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
2014/02/18 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
PHP通过GD库实现验证码功能示例
2019/02/23 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
2020/12/16 PHP
jQuery使用手册之 事件处理
2007/03/24 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
两个select多选模式的选项相互移动(示例代码)
2014/01/11 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
js控制div层的叠加简单方法
2016/10/15 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
jQuery在header中设置请求信息的方法
2017/03/06 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
Python读写txt文本文件的操作方法全解析
2016/06/26 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
numpy 计算两个数组重复程度的方法
2018/11/07 Python
浅谈python实现Google翻译PDF,解决换行的问题
2018/11/28 Python
Python装饰器结合递归原理解析
2020/07/02 Python
浅析HTML5:'data-'属性的作用
2018/01/23 HTML / CSS
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
介绍一下如何利用路径遍历进行攻击及如何防范
2014/01/19 面试题
J2EE中的容器都包括哪些
2013/08/21 面试题
酒店财务部岗位职责
2015/04/14 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书
在 Golang 中实现 Cache::remember 方法详解
2021/03/30 Python