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 相关文章推荐
jquery focus(fn),blur(fn)方法实例代码
Dec 16 Javascript
struts2+jquery+json实现异步加载数据(自写)
Jun 24 Javascript
JS画5角星方法介绍
Sep 17 Javascript
使用原生js封装webapp滑动效果(惯性滑动、滑动回弹)
May 06 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
Dec 03 Javascript
基于canvas实现的钟摆效果完整实例
Jan 26 Javascript
xmlplus组件设计系列之按钮(2)
Apr 26 Javascript
JavaScript之DOM_动力节点Java学院整理
Jul 03 Javascript
简化版的vue-router实现思路详解
Oct 19 Javascript
JS开发常用工具函数(小结)
Jul 04 Javascript
JS实现打字游戏
Dec 17 Javascript
JS实现时间校验的代码
May 25 Javascript
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
用php获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
Javascript 学习书 推荐
2009/06/13 Javascript
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
通过javascript获取iframe里的值示例代码
2013/06/24 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
Javascript基础教程之定义和调用函数
2015/01/18 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
简单的js表格操作
2016/09/24 Javascript
js基础之DOM中document对象的常用属性方法详解
2016/10/28 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
2016/12/26 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
vue按需引入element Transfer 穿梭框
2017/09/30 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
Python实现远程调用MetaSploit的方法
2014/08/22 Python
python学习入门细节知识点
2018/03/29 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
Python将文字转成语音并读出来的实例详解
2019/07/15 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
网络维护中文求职信
2014/01/03 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
2014年体育部工作总结
2014/11/13 职场文书
python实现简单倒计时功能
2021/04/21 Python
详解Java实践之建造者模式
2021/06/18 Java/Android