jquery插件bootstrapValidator表单验证详解

作者:sqq0103 时间:2024-04-22 22:22:05 

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个精彩的专题:

Bootstrap学习教程

Bootstrap实战教程

Bootstrap Table使用教程

Bootstrap插件使用教程

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

标签:jquery,bootstrapValidator,表单验证
0
投稿

猜你喜欢

  • Python数据可视化之简单折线图的绘制

    2021-05-25 11:59:30
  • 好的产品设计并非始于图片,而是对人的理解

    2009-08-02 20:25:00
  • TensorFlow利用saver保存和提取参数的实例

    2022-03-31 16:27:15
  • Python安装xarray库读取.nc文件的详细步骤

    2023-10-15 11:59:37
  • ASP 判断是否有中文的代码

    2011-04-15 11:07:00
  • python把数组中的数字每行打印3个并保存在文档中的方法

    2022-08-13 19:15:30
  • MySQL:使用源码分发版还是二进制分发版

    2009-09-01 10:35:00
  • python使用turtle库绘制树

    2022-04-14 09:09:06
  • 读"设计的3个C"之构图

    2008-12-24 13:25:00
  • 在Python中使用next()方法操作文件的教程

    2023-01-17 11:21:40
  • python+rsync精确同步指定格式文件

    2023-09-18 06:51:26
  • python实现csv格式文件转为asc格式文件的方法

    2021-10-12 19:10:37
  • python中requests爬去网页内容出现乱码问题解决方法介绍

    2023-09-14 01:00:11
  • 解决pycharm工程启动卡住没反应的问题

    2021-04-05 09:54:02
  • 动态给表添加删除字段并同时修改它的插入更新存储过程

    2024-01-17 22:12:56
  • 解决Python报错:ValueError:operands could not be broadcast together with shapes

    2021-05-14 12:04:53
  • Python3+Requests+Excel完整接口自动化测试框架的实现

    2022-12-12 00:19:52
  • 深入SQL截取字符串(substring与patindex)的详解

    2024-01-27 16:16:24
  • Python简单实现gif动图倒放示例

    2021-08-20 16:29:21
  • 大数据量高并发的数据库优化详解

    2024-01-18 14:21:50
  • asp之家 网络编程 m.aspxhome.com