jQuery validate插件功能与用法详解


Posted in Javascript onDecember 15, 2016

本文实例讲述了jQuery validate插件功能与用法。分享给大家供大家参考,具体如下:

前言:对于表单内容格式的验证,原生JS的写法,较为繁琐,笔者曾在写一个注册界面的时候,验证邮箱格式,用户名格式,密码格式,多处使用了正则,并且错误提示信息也要用display:none/显示隐藏,在用过jQuery validate插件后,则大大加快了开发速度!

1.jQuery validate插件提供了强大的验证功能,jQuery validate插件的官网是http://jqueryvalidation.org/,官方网站上有详细的文档介绍了jQuery插件的使用方法。对于插件的使用

(1)首先下载jquery.validate.js插件

然后在HTML文件中插入

<script type="text/JavaScript" src="js/jquery-1.11.3.js"></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<script type="text/javascript" src="js/js1.js"></script>

因为jQuery插件是基于jQuery库基础之上的,因此在导入jQuery validate.js文件之前一定要先导入jQuery.js文件

(2) jQuery validate插件提供了$(form).validate(options)方法,本插件自带必填的数字,文字等验证规则

其中form表示表单元素名称,options表示调用validate方法时的配置对象,所有配置信息和异常信息显示的规则都包含在对象options中。

2.对于使用jQuery validate的方法有很多种,这里详细介绍通过表单元素名称来验证表单规则的方法。

即一种与HTML元素无直接联系,而是通过name属性来关联字段和验证规则的验证写法,这种方法可以实现行为与结构的分离。

<form id="form-sp">
 <fieldset>
<legend>用户登录</legend>
<p>
<label for="username">用户名</label>
<input type="text" name="username" />
</p>
  <p class="tip"></p>
<p>
<label for="password">密 码</label>
  <input type="password" name="password"/>
</p>
<p class="tip"></p>
<p>
<label for="confirm-password">再输入</label>
<input type="password" name="confirm-password"/>
</p>
<p class="tip"></p>
  <label for="verify"></label>
  <input type="button" value="确定" name="verify" id="btn-ver"/>
  </fieldset>
</form>

这对上诉的HTML文件,我们可以写成如下验证规则:

$("#form-sp").validate({
rules:{
username:{
required:true,
minlength:3
},
password:{
required:true,
minlength:6
},
"confirm-password":{
required:true,
equalTo:"#password"
}
},
messages:{
username:{
required:"请输入你的用户名",
minlength:"至少输入三位的用户名"
}
},
errorPlacement:function(error,element){
  error.appendTo(element.parent().next());
}
})

运行这段代码后,显示为

jQuery validate插件功能与用法详解

我们发现在自定义规则之后,表单自带了验证方法,下面我们来看validate对象中,具体属性的作用

(1)首先在rules属性中,我们根据表单的name,来确定各个表单元素的规则:

比如required:true

说明用户名这个表单元素,不能为空,

minlength:2,表示用户名至少为2位字符

maxlength:10,表示用户名至多为10位的字符

(2)其次在messages属性中,定义了当表单中的信息与规则不符合情况下的,错误提示信息,

如果不修改,默认为英文提示。在这里我们修改了username表单元素的required:属性的错误信息

因为在报错的时候会提示,“至少输入三位用户名

3.了解jQuery validate插件的两个基本属性rules和messages,

下面jQuery validate默认校验表单:

1 required:true 必须输入的字段。
2 remote:"check.php" 使用 ajax 方法调用 check.php 验证输入值。
3 email:true 必须输入正确格式的电子邮件。
4 url:true 必须输入正确格式的网址。
5 date:true 必须输入正确格式的日期。日期校验 ie6 出错,慎用。
6 dateISO:true 必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22。只验证格式,不验证有效性。
7 number:true 必须输入合法的数字(负数,小数)。
8 digits:true 必须输入整数。
9 creditcard: 必须输入合法的信用卡号。
10 equalTo:"#field" 输入值必须和 #field 相同。
11 accept: 输入拥有合法后缀名的字符串(上传文件的后缀)。
12 maxlength:5 输入长度最多是 5 的字符串(汉字算一个字符)。
13 minlength:10 输入长度最小是 10 的字符串(汉字算一个字符)。
14 rangelength:[5,10] 输入长度必须介于 5 和 10 之间的字符串(汉字算一个字符)。
15 range:[5,10] 输入值必须介于 5 和 10 之间。
16 max:5 输入值不能大于 5。
17 min:10 输入值不能小于 10。

这里对于各个校验元素就不一一分析

我们来分析来个有意思的校验元素

(1)equalTo

对于equalTo元素,使用方法为equalTo:"#filed"

在具体的使用时,只有当前的表单元素中的值与name为filed的表单元素的值相等时,返回true 不会报错,否则会报错,并显示错误提示信息,常见的应用是在注册界面验证两次输入密码是否一致,比如:

<p>
<label for="password">密 码</label>
 <input type="password" name="password"/>
</p>
<p class="tip"></p>
<p>
 <label for="confirm-password">再输入</label>
 <input type="password" name="confirm-password"/>
</p>

对于这个表单,有如下验证规则:

rules:{
username:{
required:true,
minlength:3
},
password:{
required:true,
minlength:6
},
"confirm-password":{
required:true,
equalTo:"#password"
}
},

只有当name=confirm-password的表单元素,与name=password的表单元素值相等时,才不会报错,否则会显示错误提示信息。

(2)email校验元素,用于验证邮箱的格式

如果我们在上例中的表单验证信息中加入email:true那么会自动验证所输出的是否匹配邮箱格式,若不匹配则返回false并显示错误提示信息;

jQuery validate插件功能与用法详解

4.validate的其他方法

(1)用其他方法代替默认的submit方法

submitHandler:function(form){
 form.submit();
}
submitHandler:function(form){
 form.ajaxsubmit();
}

并且可以改变validate()对象的默认submit方法:

$.validate.setDefaults({
 submitHander:function(form){
 form.submit();
 }
})

(2)debug:只验证不提交表单

如果debug:true,则表单只验证不会提交,

同样也可以改变validate()对象的默认submit方法

$.validate.setDefaults({
 debug:true;
})

(3)更改错误信息的显示位置

errorPlacement:function(error,element){
 //第一个参数为错误提示信息,第二个参数为HTML中的元素
 error.appendTo(element.parent())
 //这里也可以直接写成类名的形式或者id名的形式
 //error.appendTo(".class")或者error.appendTo("#id");
}

errorClass String 指定错误提示的 css 类名,可以自定义错误提示的样式。 "error"
errorElement String 用什么标签标记错误,默认是 label,可以改成 em。 "label"
errorContainer Selector 显示或者隐藏验证信息,可以自动实现有错误信息出现时把容器属性变为显示,无错误时隐藏,用处不大。 errorContainer: "#messageBox1, #messageBox2"  
errorLabelContainer Selector 把错误信息统一放在一个容器里面。  
wrapper String 用什么标签再把上边的 errorELement 包起来。

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
Display SQL Server Login Mode
Jun 21 Javascript
如何确保JavaScript的执行顺序 之实战篇
Mar 03 Javascript
非常棒的10款jQuery 幻灯片插件
Jun 14 Javascript
innerHTML与jquery里的html()区别介绍
Oct 12 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
Apr 11 Javascript
JS实现跟随鼠标闪烁转动色块的方法
Feb 26 Javascript
浅谈JavaScript中小数和大整数的精度丢失
May 31 Javascript
jQuery实现立体式数字动态增加(animate方法)
Dec 21 Javascript
JQuery实现动态操作表格
Jan 11 Javascript
纯JS实现轮播图
Feb 22 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
Jun 23 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
Apr 25 Javascript
EditPlus 正则表达式 实战(3)
Dec 15 #Javascript
js实现点击每个li节点,都弹出其文本值及修改
Dec 15 #Javascript
EditPlus中的正则表达式 实战(2)
Dec 15 #Javascript
js代码实现下拉菜单【推荐】
Dec 15 #Javascript
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
Dec 15 #Javascript
JavaScript常见的五种数组去重的方式
Dec 15 #Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Dec 15 #Javascript
You might like
PHP默认安装产生系统漏洞
2006/10/09 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
2011/04/18 PHP
PHP中其实也可以用方法链
2011/11/10 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
php实现的简单检验登陆类
2015/06/18 PHP
JavaScript判断窗口是否最小化的代码(跨浏览器)
2010/08/01 Javascript
javascript权威指南 学习笔记之javascript数据类型
2011/09/24 Javascript
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
javascript验证只能输入数字和一个小数点示例
2013/10/21 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
无刷新上传文件并返回自定义值
2015/06/11 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
详解使用React进行组件库开发
2018/02/06 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
[00:29]2019完美世界全国高校联赛(秋季赛)总决赛海口落幕
2019/12/10 DOTA
python实现监控linux性能及进程消耗性能的方法
2014/07/25 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
苹果Mac升级:MacSales.com
2017/11/20 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
学校党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
车队安全员岗位职责
2015/02/15 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL