一、Validation Plugin介绍



1、

JQuery 表单验证可以用插件,Validation是最常用的JQuery验证表单的插件

客户端验证优点:      1、可以减少服务器压力;   2、缩短用户等待时间提升用户体验

jQuery表单验证插件网址:https://plugins.jquery.com/tag/validate/

jQuery Validation插件网址:http://jqueryvalidation.org/



2、如何使用:

在页面引入插件(需先引入jquery)

<script src="jquery.js"></script>

<script src="jquery.validate.js"></script>

一个例子:用户名和密码表单最小长度和最大长度分别为2,10.

HTML:

jQuery Validate 如何第一次不触发 jquery validation plugin_选择器

JQuery

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_02

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_03



二、基本API



1、两个重要概念、Validate方法

两个概念:

method:验证方法,指的是校验的逻辑。比如email方法,检查输入的文本是否符合email的规则。

rule:验证规则,值得是元素和验证方法的关联。比如页面一个id为email的文本框,需要带有email的验证方法。

Validate是插件的核心方法,定义了基本的校验规则和一些有用的配置项

2、基本验证方法:

jQuery Validate 如何第一次不触发 jquery validation plugin_选择器_04

解释,例子:

1.remote:"remote.json"
//传入验证的url地址,用远程的此文件验证usernae是否有效等。向后台发送一些数据,后台根据信息在数据库查找,返回一些信息提示,譬如说用户名不存在。
remote:{
      url:"r"emote.json"
      type:"post"
      data:{                                      //传入Data
             loginTime:function(){
             return +new Date;
                }
         }
  }
2.email:true,      //要求输入的必须是一个email
3.url:true,          //要求输入的必须是一个url
4.number:true     //要求是数字,整数或者浮点数,负数
5.digits:true   //非负整数
6.confirm-password:{           //再次输入密码的input选择器
equalTo:“#password”     //与输入密码的input的选择器相等
}



三、高级API



1、Validate()和rules方法:

Validate()方法:检查表单或者某些元素是否有效

jQuery Validate 如何第一次不触发 jquery validation plugin_选择器_05

rules()方法:

jQuery Validate 如何第一次不触发 jquery validation plugin_选择器_06

举例:

jQuery Validate 如何第一次不触发 jquery validation plugin_jquery_07

jQuery Validate 如何第一次不触发 jquery validation plugin_jquery_08



2、Validate对象

Validate方法会返回 一个Validate对象

jQuery Validate 如何第一次不触发 jquery validation plugin_选择器_09

使用:首先捕获一个validate对象:

jQuery Validate 如何第一次不触发 jquery validation plugin_选择器_10

jQuery Validate 如何第一次不触发 jquery validation plugin_选择器_11



3、Validate静态方法

不用捕获Validate对象就能直接使用的方法。

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_12

format方法,格式化

jQuery Validate 如何第一次不触发 jquery validation plugin_jquery_13

setDefault方法,修改默认的设置

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_14

addClassrule方法:给class属性为txt的元素加上规则:

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_15

jQuery Validate 如何第一次不触发 jquery validation plugin_jquery_16



4、Validate()方法配置项

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_17

例子:

1).submitHandler,验证成功后运行的函数,验证失败不会触发

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_18

//验证通过后 运行的函数:提交表单

jQuery Validate 如何第一次不触发 jquery validation plugin_选择器_19

 //验证通过后,收集表单的信息,序列化的

jQuery Validate 如何第一次不触发 jquery validation plugin_jquery_20

//点击登录之后,控制台后会实现序列化后的表单的值

2)invalidHandler:验证错误是运行的函数

jQuery Validate 如何第一次不触发 jquery validation plugin_jquery_21

3)ignore:对某些元素不进行验证,值为选择器

jQuery Validate 如何第一次不触发 jquery validation plugin_jquery_22

4)rules,每隔rule(如required,minlength), 可以定义一个depends属性,

需要满足depends定义的条件,例如:密码填了才用required属性

jQuery Validate 如何第一次不触发 jquery validation plugin_选择器_23

//如果depends return true,param 2参数就传进来了。

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_24

5)groups,把一组元素的信息在一处显示,与errorPlacement配合使用。

jQuery Validate 如何第一次不触发 jquery validation plugin_选择器_25

jQuery Validate 如何第一次不触发 jquery validation plugin_jquery_26

jQuery Validate 如何第一次不触发 jquery validation plugin_选择器_27

6)errorClass、validClass

为错误的或正确的input指定class类名,默认为error、valid,通过定义类名,可以自定义样式。

例子:自定义错误或正确的提示信息的class,然后设置样式,如下:

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_28

username举例,当错误时,在imput里添加class为wong,同时显示class为wrong的lable,如下:

jQuery Validate 如何第一次不触发 jquery validation plugin_jquery_29

当正确时,在imput里添加class为right,同时隐藏class为wrong的lable,

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_30

7)errorElement,使用什么标签标记错误,以上的例子用的是labe,这个可换的。

8)wrapper,用什么标签把上边的errorElement包裹起来

9)errorLabelContainer:把错误信息统一放在一个容器里

10)errorContainer:显示或隐藏验证信息,可以自动实现有错误信息出现时把容器属性变为显示,无错误时隐藏

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_31

jQuery Validate 如何第一次不触发 jquery validation plugin_jquery_32

jQuery Validate 如何第一次不触发 jquery validation plugin_jquery_33

11)showErrors,errorMap和errorList两个参数,显示的样式为如下:

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_34

errorMap显示错误信息,errorList显示的错误比较详细

jQuery Validate 如何第一次不触发 jquery validation plugin_选择器_35

12)success:设置字符串或者方法

给验证通过的label增加 一个class

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_36

jQuery Validate 如何第一次不触发 jquery validation plugin_选择器_37

13)highlight,unhighlight,主要针对表单元素,做效果 

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_38



5、选择器扩展

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_39



6、自定义验证

jQuery Validate 如何第一次不触发 jquery validation plugin_表单_40

method方法返回true or flase.

//element没有值的时候method方法直接返回true:用this.optional(element)

目的:让值为空的时候不去校验

jQuery Validate 如何第一次不触发 jquery validation plugin_jquery_41



7、中国国际化:

jQuery Validate 如何第一次不触发 jquery validation plugin_选择器_42



8、安全性

一般验证两次:客户端验证,服务器端验证

jQuery Validate 如何第一次不触发 jquery validation plugin_选择器_43