jquery插件bootstrapValidator表单验证详解


Posted in Javascript onDecember 15, 2016

Bootstrap Validator是为Bootstrap3设计的一款表单验证jQuery插件,非常适合基于Bootstrap框架的网站。
看作者的github,这款插件已经不再更新了,而推荐使用FormValidation,不过现在还是先介绍一下BootstrapValidator的使用。

准备工作

BootstrapValidator文档地址:http://bv.doc.javake.cn/

下载源码后,将其中的bootstrapValidator.min.css和bootstapValidator.min.js导入项目,并在页面中引入这些组件,如下:

<link rel="stylesheet" type="text/css" href="path/bootstrapValidator.min.css">
<script type="text/javascript" src="path/bootstrapValidator.min.js"></script>

其中path是对应文件导入项目的路径

简单应用

文档中给出调用插件的方法是:

$(document).ready(function() {
 $(formSelector).bootstrapValidator({
 excluded: ...,
 feedbackIcons: ...,
 live: 'enabled',
 message: 'This value is not valid',
 submitButtons: 'button[type="submit"]',
 submitHandler: null,
 trigger: null,
 fields: {
 <fieldName>: {
 enabled: true,
 message: 'This value is not valid',
 container: null,
 selector: null,
 trigger: null,
 // Map the validator name with its options
 validators: {
 ...
 <validatorName>: <validatorOptions>
 ...
 }
 }
 ...
 }
 });
});

下面针对一个简单的表单来进行说明:

<form id="logForm" class="form-horizontal">
 <div class="form-group">
 <label class="col-lg-3 control-label">用户名</label>
 <div class="col-lg-5">
 <input type="text" class="form-control" name="username" />
 </div>
 </div>
 <div class="form-group">
 <label class="col-lg-3 control-label">邮箱</label>
 <div class="col-lg-5">
 <input type="text" class="form-control" name="email" />
 </div>
 </div>
 <div class="form-group">
 <label class="col-lg-3 control-label">密码</label>
 <div class="col-lg-5">
 <input type="password" class="form-control" name="password" />
 </div>
 </div>
 <button type="submit" class="btn btn-md">提交</button>
</form>

对于上面这个表单应用BootstrapValidator非常简单,fieldName 对应表单中每一项的 name 属性,然后BV还内置了很多 validator 供用户选择,详细可参考文档的 validators 部分,可以看到,邮箱格式的验证正是其中之一,不需要用户自己写正则了。

$(document).ready(function() {
 $('#signup-form').bootstrapValidator({
 fields: {
 username: {
 validators: {
 notEmpty: {
 message: '用户名不能为空'
 },
 stringLength: {
 min: 3,
 max: 6,
 message: '用户名只能在3-6个字符之间哦~'
 }
 }
 },
 email: {
 validators: {
 emailAddress: {
 message: '邮箱格式有误'
 }
 }
 },
 password: {
 validators: {
 notEmpty: {
 message: '密码不能为空'
 },
 stringLength: {
 min: 6,
 max: 8,
 message: '密码必须在6-8个字符之间~'
 },
 regexp: {
 regexp: /^[a-zA-Z0-9]+$/,
 message: '密码只能由字母、数字组成~'
 }
 }
 }
 }
 });
});

不符合验证要求时,会显示错误提示的message,并且禁用提交按钮,提示信息的颜色字体等等都可以重写css来设置,效果展示如下:

jquery插件bootstrapValidator表单验证详解

注:图中的注册按钮处于禁用状态

下面再介绍一下fields的 selector,因为表单数据往往是属于某一个注册用户所有,为方便与后台进行数据交互,我们往往按如下的形式设置name,这时候就不能直接利用name属性来进行验证了,而是使用selector来定义fields:

<form class="form-horizontal">
 <div class="form-group">
 <label class="col-lg-3 control-label">用户名</label>
 <div class="col-lg-5">
 <input type="text" id="user" class="form-control" name="login_user.userName" />
 </div>
 </div>
 <div class="form-group">
 <label class="col-lg-3 control-label">密码</label>
 <div class="col-lg-5">
 <input type="password" id="pass" class="form-control" name="login_user.password" />
 </div>
 </div>
 <button type="submit" id="submitBtn" class="btn btn-md">提交</button>
</form>

对应的js代码:

$(document).ready(function() {
 $('#signup-form').bootstrapValidator({
 fields: {
 user: {
 selector: '#user', 
 validators: {
 notEmpty: {
 message: '用户名不能为空'
 },
 stringLength: {
 min: 3,
 max: 6,
 message: '用户名只能在3-6个字符之间哦~'
 }
 }
 },
 pass: {
 selector: '#pass',
 validators: {
 notEmpty: {
 message: '密码不能为空'
 },
 stringLength: {
 min: 6,
 max: 8,
 message: '密码必须在6-8个字符之间~'
 },
 regexp: {
 regexp: /^[a-zA-Z0-9]+$/,
 message: '密码只能由字母、数字组成~'
 }
 }
 }
 }
 });
});

如果你嫌弃这样写代码累赘,可以直接应用相应的HTML属性,详细可参考文档的 settings 部分

jquery插件bootstrapValidator表单验证详解

还想深入学习表单验证的朋友,可以点击专题:jquery表单验证大全 JavaScript表单验证大全

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上只是BootstrapValidator的一个非常简单的应用, 官方文档 很详细,感兴趣的话就继续查阅,来深入了解它的强大功能吧

Javascript 相关文章推荐
你必须知道的Javascript知识点之&quot;字面量和对应类型&quot;说明介绍
Apr 23 Javascript
JS判断客户端是手机还是PC的2个代码
Apr 12 Javascript
AngularJS的一些基本样式初窥
Jul 27 Javascript
如何使用headjs来管理和异步加载js
Nov 29 Javascript
AngularJS实现路由实例
Feb 12 Javascript
windows下vue-cli导入bootstrap样式
Apr 25 Javascript
用原生JS实现简单的多选框功能
Jun 12 Javascript
JavaScript中三个等号和两个等号你了解多少
Jul 04 Javascript
javascript面向对象程序设计实践常用知识点总结
Jul 29 Javascript
layui layer select 选择被遮挡的解决方法
Sep 21 Javascript
关于JavaScript回调函数的深入理解
Jun 27 Javascript
vue实现移动端div拖动效果
Mar 03 Vue.js
jQuery中的100个技巧汇总
Dec 15 #Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Dec 14 #Javascript
详解jQuery中的事件
Dec 14 #Javascript
JS实现鼠标移上去显示图片或微信二维码
Dec 14 #Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
Dec 14 #Javascript
node.js报错:Cannot find module 'ejs'的解决办法
Dec 14 #Javascript
原生JS获取元素集合的子元素宽度实例
Dec 14 #Javascript
You might like
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
杏林同学录(一)
2006/10/09 PHP
PHP常见数组函数用法小结
2016/03/21 PHP
Joomla简单判断用户是否登录的方法
2016/05/04 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
js实现广告漂浮效果的小例子
2013/07/02 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
angular4中引入echarts的方法示例
2019/01/29 Javascript
Vue中img的src是动态渲染时不显示的解决
2019/11/14 Javascript
对vue生命周期的深入理解
2020/12/03 Vue.js
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
Python的函数的一些高阶特性
2015/04/27 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
Python中判断子串存在的性能比较及分析总结
2019/06/23 Python
python实现两个文件夹的同步
2019/08/29 Python
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
计算机专业应届毕业生自荐信
2013/09/26 职场文书
信息部岗位职责
2013/11/12 职场文书
学校采购员岗位职责
2014/01/02 职场文书
学习自我鉴定
2014/02/01 职场文书
数控专业自荐书范文
2014/03/16 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
特此通知格式
2015/04/27 职场文书
幼儿园教师管理制度
2015/08/05 职场文书
安全责任协议书范本
2016/03/23 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript