jquery.Validation.js使用手册
联系邮箱:lusens@foxmail.com
从一段基础的HTML开始:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<form id="form1" runat="server">
<table>
<tr>
<td>用户名:</td>
<td>
<input type="text" id="loginName" name="loginName" /></td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="password" id="loginPwd" name="loginPwd" /></td>
</tr>
<tr>
<td colspan="2">
<input type="button" id="BtnOK" value="登录" /></td>
</tr>
</table>
</form>
</body>
</html>
最简单的表单验证方式:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="../../jQuery/jquery-1.8.3.min.js"></script>
<script src="../../jQuery/jquery-validation-1.13.1/dist/jquery.validate.min.js"></script>
<script src="../../jQuery/jquery-validation-1.13.1/dist/additional-methods.js"></script>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<table>
<tr>
<td>用户名:</td>
<td>
<input type="text" id="loginName" name="loginName" required/></td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="password" id="loginPwd" name="loginPwd" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" id="BtnOK" value="登录" /></td>
</tr>
</table>
</form>
</body>
</html>
上面的HTML代码先引用了jQuery框架,然后引用了jquery.validate验证框架,注意这里的引用顺序不能错。在loginName内添加了required属性,表示该文本框为必填项目,使用submit提交按钮,在表单提交前由框架进行数据校验工作,代码工作截图如下:
下面说说该验证框架的使用场景:
1、表单内的单个对象数据验证
2、表单数据的基础验证
3、使用JS方法验证表单数据
4、修改表单验证的提示样式
5、添加自定义的表单验证方法
6、Radio、CheckBox、Select控件的数据验证
7、在Rules内添加验证的函数
8、点击按钮时初始化验证框架并进行数据验证
9、框架的中文API
1、表单内的单个对象数据验证
单个对象数据验证仅仅使用到框架的validate()方法,具体参数说明可以参考框架的中文API,验证可以使用如下两种代码方式实现:
方式1:
<script type="text/javascript">
$(function () {
$("#BtnOK").click(function () {
$("#loginForm").validate().element($("#loginName"));
});
})
</script>
<input type="text" id="loginName" name="loginName" class="required"/></td>
注意:使用这种方式需要在表单被验证的控件对象内添加class属性,required属性表示必填项,其他验证属性可以参考框架的中文API
方式2:
<script type="text/javascript">
$(function () {
var validator = $("#loginForm").validate({
rules: {
"loginName": {
"required": true,
"minlength": 6
}
},
messages: {
"loginName": {
"required": "请输入登录名",
"minlength": "登录名最小6个字符"
}
}
});
$("#BtnOK").click(function () {
$("#loginForm").validate().element($("#loginName"));
});
})
</script>
说明:这种方式不需要对被验证表单内的控件对象添加属性,全部通过JS代码实现即可,首先声明一个validator验证对象,然后使用该对象的element方法查看控件数据是否通过验证。声明validator对象时,可以初始化一些实例属性,包括rules(验证规则),messages(验证失败后的消息提示)等等,具体属性可以参考验证框架的中文API。
1、表单数据的基础验证
查看以下HTML代码:
<script type="text/javascript">
$(function () {
$("#loginForm").validate();
})
</script>
<form id="loginForm" runat="server">
<table>
<tr>
<td>用户名:</td>
<td>
<input type="text" id="loginName" name="loginName" class="required email" minlength="2"/></td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="password" id="loginPwd" name="loginPwd" class="required" minlength="2"/></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" id="BtnOK" value="登录" /></td>
</tr>
</table>
</form>
说明:以上代码需要引用jQuery框架和验证框架代码。首先查看被验证表单的控件对象,添加了class="required email" minlength="2"等属性,required表示必填项,email表示该控件的数据必须符合Email的格式,minlength限制了该控件的数据长度。
注意:这里使用了submit类型的按钮进行表单提交。如果在项目中使用了Button类型的按钮进行表单提交,验证代码需要做如下修改
<input type="button" id="BtnOK" value="登录" />
<script type="text/javascript">
$(function () {
$("#BtnOK").click(function () {
$("#loginForm").validate().form();
})
})
</script>
说明:该框架在表单提交时默认会自动进行数据验证,如果需要在表单提交之前进行数据验证,可以考虑使用上面的验证方式,上面的代码可以分解为两个步骤,$("#loginForm").validate()声明了一个新的数据验证框架,后面调用了该实例的form()方法进行表单数据验证,最终返回的结果是Boolen类型,该方法的具体说明可以参考中文API文档。
1、使用JS方法验证表单
使用JS方法进行表单验证的好处在于不需要在HTML的控件对象代码内添加多余的验证框架自定义的属性,仅仅需要在对象内添加name属性,查看以下代码(需要引入jQuery和验证框架的相关JS文件):
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
$(function () {
$("#BtnOK").click(function () {
var validator = $("#loginForm").validate({
rules: {
"loginName": {
"required": true,
"email": true,
"minlength": 6
},
"loginPwd": {
"required": true,
"minlength": 6,
"maxlength": 15
}
},
messages: {
"loginName": {
"required": "请输入登录名",
"email": "登录名格式错误",
"minlength": "登录名最小6个字符"
},
"loginPwd": {
"required": "请输入密码",
"minlength":"密码最小6位",
"maxlength": "密码最大15位"
}
}
});
$("#BtnOK").click(function () {
$("#loginForm").validate().form();
});
})
})
</script>
</head>
<body>
<form id="loginForm" runat="server">
<table>
<tr>
<td>用户名:</td>
<td>
<input type="text" id="loginName" name="loginName"/></td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="password" id="loginPwd" name="loginPwd"/></td>
</tr>
<tr>
<td colspan="2">
<input type="button" id="BtnOK" value="登录" /></td>
</tr>
</table>
</form>
</body>
</html>
说明:以上代码使用的验证方式依旧是首先声明验证框架对象(在声明对象是初始化了对象的需要属性),然后在按钮的邦定事件内添加了验证框架实例的表单验证方法。点击按钮后框架验证效果如下:
1、修改验证提示样式
在控件数据验证失败时,可以修改验证失败控件的样式以及错误的提示样式,使用到的依旧是框架在声明是初始化的相关属性,查看以下代码:
<style type="text/css">
.ErrorBorder { border-width: 2px; border-color: red; }
</style>
<script type="text/javascript">
$(function () {
$("#BtnOK").click(function () {
var validator = $("#loginForm").validate({
rules: {
"loginName": {
"required": true,
"email": true,
"minlength": 6
},
"loginPwd": {
"required": true,
"minlength": 6,
"maxlength": 15
}
},
messages: {
"loginName": {
"required": "请输入登录名",
"email": "登录名格式错误",
"minlength": "登录名最小6个字符"
},
"loginPwd": {
"required": "请输入密码",
"minlength": "密码最小6位",
"maxlength": "密码最大15位"
}
},
errorClass: "ErrorBorder"
});
$("#BtnOK").click(function () {
$("#loginForm").validate().form();
});
})
})
</script>
说明:首先定义了ErrorBorder的css属性,该属性定义了控件边框宽度为2px,颜色为红色,在validate框架声明时定义了errorClass属性,并为该属性赋予ErrorBorder值,下面查看该代码运行时的效果
点击登录按钮后,表单的控件对象边框按照定义的CSS样式改变,输入符合验证规则的数据后,表单控件对象样式自动恢复正常,如下图:
以上修改主要使用了验证框架的errorClass属性,在验证框架中本身已经内置了 validation.css样式文件进行表单上控件对象的样式控制。
在上面的代码内,错误提示据使用label控件放置,同时可以对错误提示的样式进行修改,查看以下代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="../../jQuery/jquery-1.8.3.min.js"></script>
<script src="../../jQuery/jquery-validation-1.13.1/dist/jquery.validate.min.js"></script>
<script src="../../jQuery/jquery-validation-1.13.1/dist/additional-methods.js"></script>
<script src="../../jQuery/layer-v1.8.5/layer/layer.min.js"></script>
<style type="text/css">
.ErrorBorder { border-width: 2px; border-color: red; }
</style>
<script type="text/javascript">
$(function () {
$("#BtnOK").click(function () {
var validator = $("#loginForm").validate({
rules: {
"loginName": {
"required": true,
"email": true,
"minlength": 6
},
"loginPwd": {
"required": true,
"minlength": 6,
"maxlength": 15
}
},
messages: {
"loginName": {
"required": "请输入登录名",
"email": "登录名格式错误",
"minlength": "登录名最小6个字符"
},
"loginPwd": {
"required": "请输入密码",
"minlength": "密码最小6位",
"maxlength": "密码最大15位"
}
},
showErrors: function (errorMap, errorList) {
if (errorList.length > 0) {
layer.tips(errorList[0].message, errorList[0].element, {
time: 2,
closeBtn: [0, true],
style: ['background-color:#F26C4F; color:#fff;border:1px solid #FFF3EE;', '#F26C4F'],
maxWidth: 200
});
}
}
});
$("#BtnOK").click(function () {
$("#loginForm").validate().form();
});
})
})
</script>
</head>
<body>
<form id="loginForm" runat="server">
<table>
<tr>
<td>用户名:</td>
<td>
<input type="text" id="loginName" name="loginName"/></td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="password" id="loginPwd" name="loginPwd"/></td>
</tr>
<tr>
<td colspan="2">
<input type="button" id="BtnOK" value="登录" /></td>
</tr>
</table>
</form>
</body>
</html>
说明:上面的代码在修改表单控件样式代码的基础上,仅仅修改了两处,一是使用<script src="../../jQuery/layer-v1.8.5/layer/layer.min.js"></script>代码引入layer代码库,二是在声明验证控件时定义了showErrors属性,在该属性内使用回调方法进行错误代码的控制,上面的代码是使用layer层进行错误代码弹出及显示,同样使用其他JS代码进行相关控制。showErrors属性的相关说明,可以参考验证框架中文API,以上代码的运行结果如下图:
1、添加自定义验证方法
validate验证框架内置了19种验证方法,但是因为本地化等原因,内置的验证方法并不能完全满足网页前端开发时遇到的数据验证情况,但是框架内置了additional-methods.js文件,可以自行添加验证方法。例如对于大陆的身份证验证,笔者添加了如下方法:
// 身份证号码验证
$.validator.addMethod("isIdCardNo", function (value, element) {
//var idCard = /^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\w)$/;
return this.optional(element) || isIdCardNo(value);
}, "请输入正确的身份证号码。");
6、Radio、CheckBox、DropDownSelect控件的验证
radio 的 required 表示必须选中一个。
checkbox 的 required 表示必须选中。checkbox 的 minlength 表示必须选中的最小个数,maxlength 表示最大的选中个数,rangelength:[2,3] 表示选中个数区间。
select 的 required 表示选中的 value 不能为空。 Select 的 minlength 表示选中的最小个数(可多选的 select),maxlength 表示最大的选中个数,rangelength:[2,3] 表示选中个数区间。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="../../jQuery/jquery-1.8.3.min.js"></script>
<script src="../../jQuery/jquery-validation-1.13.1/dist/jquery.validate.min.js"></script>
<script src="../../jQuery/jquery-validation-1.13.1/dist/additional-methods.js"></script>
<script src="../../jQuery/layer-v1.8.5/layer/layer.min.js"></script>
<script type="text/javascript">
var validator;
$(function () {
$("#BtnOK").click(function () {
validator.form();
})
validator = $("#loginForm").validate({
rules: {
"loginPwd": {
"minlength": 6,
"maxlength": 15
},
"loginName": {
"email": true,
"minlength": 6
},
"sex": "required",
"LoginType":{
"required": true,
"rangelength":[1,3]
},
"LoginSele": "required"
},
messages: {
"loginPwd": {
"minlength": "密码最小6位",
"maxlength": "密码最大15位"
},
"loginName": {
"email": "登录名格式错误",
"minlength": "登录名最小6个字符"
},
"sex": "请选择用户性别",
"LoginType": {
"required": "请选择",
"rangelength": "选择1-3个项目"
},
"LoginSele": "必选"
},
showErrors: function (errorMap, errorList) {
if (errorList.length > 0) {
layer.tips(errorList[0].message, errorList[0].element, {
time: 2,
closeBtn: [0, true],
style: ['background-color:#F26C4F; color:#fff;border:1px solid #FFF3EE;', '#F26C4F'],
maxWidth: 200
});
}
}
})
});
</script>
</head>
<body>
<form id="loginForm" runat="server">
<table>
<tr>
<td>用户名:</td>
<td>
<input type="text" id="loginName" name="loginName"/></td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="password" id="loginPwd" name="loginPwd"/></td>
</tr>
<tr>
<td colspan="2">
<input type="radio" name="sex" value="1" />男
<input type="radio" name="sex" value="0" />女
</td>
</tr>
<tr>
<td colspan="2">
<input type="checkbox" name="LoginType" value="0" />用户名
<input type="checkbox" name="LoginType" value="1" />密码
<input type="checkbox" name="LoginType" value="2" />测试1
<input type="checkbox" name="LoginType" value="3" />测试2
</td>
</tr>
<tr>
<td colspan="2">
<select name="LoginSele">
<option>--请选择--</option>
<option value="0">0000</option>
<option value="1">1111</option>
<option value="2">2222</option>
<option value="3">3333</option>
</select>
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" id="BtnOK" value="登录" /></td>
</tr>
</table>
</form>
</body>
</html>
7、在Rules内添加验证函数
在实例化验证框架的函数内,Rules参数可以支持方法,假设有如下应用场景,根据某个条件来决定是否验证密码的必填属性,代码如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="../../jQuery/jquery-1.8.3.min.js"></script>
<script src="../../jQuery/jquery-validation-1.13.1/dist/jquery.validate.min.js"></script>
<script src="../../jQuery/jquery-validation-1.13.1/dist/additional-methods.js"></script>
<script src="../../jQuery/layer-v1.8.5/layer/layer.min.js"></script>
<script type="text/javascript">
var validator;
$(function () {
$("#BtnOK").click(function () {
validator.form();
})
validator = $("#loginForm").validate({
rules: {
"loginPwd": {
"minlength": 6,
"maxlength": 15
},
"loginName": {
"email": true,
"minlength": 6,
"required": function () {
var check = $("input[name='CheckPwd']:checked").val();
return check;
}
},
"sex": "required",
"LoginType":{
"required": true,
"rangelength":[1,3]
},
"LoginSele": "required"
},
messages: {
"loginPwd": {
"minlength": "密码最小6位",
"maxlength": "密码最大15位"
},
"loginName": {
"email": "登录名格式错误",
"minlength": "登录名最小6个字符"
},
"sex": "请选择用户性别",
"LoginType": {
"required": "请选择",
"rangelength": "选择1-3个项目"
},
"LoginSele": "必选"
},
showErrors: function (errorMap, errorList) {
if (errorList.length > 0) {
layer.tips(errorList[0].message, errorList[0].element, {
time: 2,
closeBtn: [0, true],
style: ['background-color:#F26C4F; color:#fff;border:1px solid #FFF3EE;', '#F26C4F'],
maxWidth: 200
});
}
}
})
});
</script>
</head>
<body>
<form id="loginForm" runat="server">
<table>
<tr>
<td colspan="2">
是否验证密码:<input type="radio" name="CheckPwd" value="1" />是
<input type="radio" name="CheckPwd" value="0" />否
</td>
</tr>
<tr>
<td>用户名:</td>
<td>
<input type="text" id="loginName" name="loginName"/></td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="password" id="loginPwd" name="loginPwd"/></td>
</tr>
<tr>
<td colspan="2">
<input type="radio" name="sex" value="1" />男
<input type="radio" name="sex" value="0" />女
</td>
</tr>
<tr>
<td colspan="2">
<input type="checkbox" name="LoginType" value="0" />用户名
<input type="checkbox" name="LoginType" value="1" />密码
<input type="checkbox" name="LoginType" value="2" />测试1
<input type="checkbox" name="LoginType" value="3" />测试2
</td>
</tr>
<tr>
<td colspan="2">
<select name="LoginSele">
<option>--请选择--</option>
<option value="0">0000</option>
<option value="1">1111</option>
<option value="2">2222</option>
<option value="3">3333</option>
</select>
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" id="BtnOK" value="登录" /></td>
</tr>
</table>
</form>
</body>
</html>
运行界面如下:
当是否验证密码的单选框选择“是”时,密码为必填项目,当选择否时,密码不为必填项目。
1、在自定义事件内初始化验证框架
下面的代码描述这样一个使用场景,页面加载完成后,点击“登录”按钮,验证框架没有正常工作,点击“初始化验证框架”后,完成框架的初始化,然后点击“登录”按钮,表单的元素正常被验证,代码如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="../../jQuery/jquery-1.8.3.min.js"></script>
<script src="../../jQuery/jquery-validation-1.13.1/dist/jquery.validate.min.js"></script>
<script src="../../jQuery/jquery-validation-1.13.1/dist/additional-methods.js"></script>
<script src="../../jQuery/layer-v1.8.5/layer/layer.min.js"></script>
<script type="text/javascript">
var validator;
$(function () {
$("#BtnOK").click(function () {
validator.form();
})
$("#BtnNewObj").click(function () {
validator = $("#loginForm").validate({
rules: {
"loginPwd": {
"minlength": 6,
"maxlength": 15
},
"loginName": {
"email": true,
"minlength": 6,
"required": function () {
var check = $("input[name='CheckPwd']:checked").val();
return check;
}
},
"sex": "required",
"LoginType": {
"required": true,
"rangelength": [1, 3]
},
"LoginSele": "required"
},
messages: {
"loginPwd": {
"minlength": "密码最小6位",
"maxlength": "密码最大15位"
},
"loginName": {
"email": "登录名格式错误",
"minlength": "登录名最小6个字符"
},
"sex": "请选择用户性别",
"LoginType": {
"required": "请选择",
"rangelength": "选择1-3个项目"
},
"LoginSele": "必选"
},
showErrors: function (errorMap, errorList) {
if (errorList.length > 0) {
layer.tips(errorList[0].message, errorList[0].element, {
time: 2,
closeBtn: [0, true],
style: ['background-color:#F26C4F; color:#fff;border:1px solid #FFF3EE;', '#F26C4F'],
maxWidth: 200
});
}
}
})
});
})
</script>
</head>
<body>
<form id="loginForm" runat="server">
<table>
<tr>
<td colspan="2">
是否验证密码:<input type="radio" name="CheckPwd" value="1" />是
<input type="radio" name="CheckPwd" value="0" />否
</td>
</tr>
<tr>
<td>用户名:</td>
<td>
<input type="text" id="loginName" name="loginName"/></td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="password" id="loginPwd" name="loginPwd"/></td>
</tr>
<tr>
<td colspan="2">
<input type="radio" name="sex" value="1" />男
<input type="radio" name="sex" value="0" />女
</td>
</tr>
<tr>
<td colspan="2">
<input type="checkbox" name="LoginType" value="0" />用户名
<input type="checkbox" name="LoginType" value="1" />密码
<input type="checkbox" name="LoginType" value="2" />测试1
<input type="checkbox" name="LoginType" value="3" />测试2
</td>
</tr>
<tr>
<td colspan="2">
<select name="LoginSele">
<option>--请选择--</option>
<option value="0">0000</option>
<option value="1">1111</option>
<option value="2">2222</option>
<option value="3">3333</option>
</select>
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" id="BtnNewObj" value="实例化验证框架" />
<input type="button" id="BtnOK" value="登录" /></td>
</tr>
</table>
</form>
</body>
</html>
Query.validate 中文 API
默认校验规则:
序号 | 规则 | 描述 |
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。 |
名称 | 返回类型 | 描述 |
validate(options) | Validator | 验证所选的 FORM。 |
valid() | Boolean | 检查是否验证通过。 |
rules() | Options | 返回元素的验证规则。 |
rules("add",rules) | Options | 增加验证规则。 |
rules("remove",rules) | Options | 删除验证规则。 |
removeAttrs(attributes) | Options | 删除特殊属性并且返回它们。 |
自定义选择器 | ||
:blank | Validator | 没有值的筛选器。 |
:filled | Array <Element> | 有值的筛选器。 |
:unchecked | Array <Element> | 没选择的元素的筛选器。 |
实用工具 | ||
jQuery.format(template,argument,argumentN...) | String | 用参数代替模板中的 {n}。 |
Validator
validate 方法返回一个 Validator 对象。Validator 对象有很多方法可以用来引发校验程序或者改变 form 的内容,下面列出几个常用的方法。
名称 | 返回类型 | 描述 |
form() | Boolean | 验证 form 返回成功还是失败。 |
element(element) | Boolean | 验证单个元素是成功还是失败。 |
resetForm() | undefined | 把前面验证的 FORM 恢复到验证前原来的状态。 |
showErrors(errors) | undefined | 显示特定的错误信息。 |
Validator 函数 | ||
setDefaults(defaults) | undefined | 改变默认的设置。 |
addMethod(name,method,message) | undefined | 添加一个新的验证方法。必须包括一个独一无二的名字,一个 JAVASCRIPT 的方法和一个默认的信息。 |
addClassRules(name,rules) | undefined | 增加组合验证类型,在一个类里面用多种验证方法时比较有用。 |
addClassRules(rules) | undefined | 增加组合验证类型,在一个类里面用多种验证方法时比较有用。这个是同时加多个验证方法。 |
内置验证方式
名称 | 返回类型 | 描述 |
required() | Boolean | 必填验证元素。 |
required(dependency-expression) | Boolean | 必填元素依赖于表达式的结果。 |
required(dependency-callback) | Boolean | 必填元素依赖于回调函数的结果。 |
remote(url) | Boolean | 请求远程校验。url 通常是一个远程调用方法。 |
minlength(length) | Boolean | 设置最小长度。 |
maxlength(length) | Boolean | 设置最大长度。 |
rangelength(range) | Boolean | 设置一个长度范围 [min,max]。 |
min(value) | Boolean | 设置最小值。 |
max(value) | Boolean | 设置最大值。 |
email() | Boolean | 验证电子邮箱格式。 |
range(range) | Boolean | 设置值的范围。 |
url() | Boolean | 验证 URL 格式。 |
date() | Boolean | 验证日期格式(类似 30/30/2008 的格式,不验证日期准确性只验证格式)。 |
dateISO() | Boolean | 验证 ISO 类型的日期格式。 |
dateDE() | Boolean | 验证德式的日期格式(29.04.1994 或 1.1.2006)。 |
number() | Boolean | 验证十进制数字(包括小数的)。 |
digits() | Boolean | 验证整数。 |
creditcard() | Boolean | 验证信用卡号。 |
accept(extension) | Boolean | 验证相同后缀名的字符串。 |
equalTo(other) | Boolean | 验证两个输入框的内容是否相同。 |
phoneUS() | Boolean | 验证美式的电话号码。 |
validate ()的可选项
描述 | 代码 |
debug:进行调试模式(表单不提交)。 | $(".selector").validate({ debug:true}) |
把调试设置为默认。 | $.validator.setDefaults({ debug:true}) |
submitHandler:通过验证后运行的函数,里面要加上表单提交的函数,否则表单不会提交。 | $(".selector").validate({ submitHandler:function(form) { $(form).ajaxSubmit(); }}) |
ignore:对某些元素不进行验证。 | $("#myform").validate({ ignore:".ignore"}) |
rules:自定义规则,key:value 的形式,key 是要验证的元素,value 可以是字符串或对象。 | $(".selector").validate({ rules:{ name:"required", email:{ required:true, email:true } }}) |
messages:自定义的提示信息,key:value 的形式,key 是要验证的元素,value 可以是字符串或函数。 | $(".selector").validate({ rules:{ name:"required", email:{ required:true, email:true } }, messages:{ name:"Name不能为空", email:{ required:"E-mail不能为空", email:"E-mail地址不正确" } }}) |
groups:对一组元素的验证,用一个错误提示,用 errorPlacement 控制把出错信息放在哪里。 | $("#myform").validate({ groups:{ username:"fname lname" }, errorPlacement:function(error,element) { if (element.attr("name") == "fname" || element.attr("name") == "lname") error.insertAfter("#lastname"); else error.insertAfter(element); }, debug:true}) |
Onubmit:类型 Boolean,默认 true,指定是否提交时验证。 | $(".selector").validate({ onsubmit:false}) |
onfocusout:类型 Boolean,默认 true,指定是否在获取焦点时验证。 | $(".selector").validate({ onfocusout:false}) |
onkeyup:类型 Boolean,默认 true,指定是否在敲击键盘时验证。 | $(".selector").validate({ onkeyup:false}) |
onclick:类型 Boolean,默认 true,指定是否在鼠标点击时验证(一般验证 checkbox、radiobox)。 | $(".selector").validate({ onclick:false}) |
focusInvalid:类型 Boolean,默认 true。提交表单后,未通过验证的表单(第一个或提交之前获得焦点的未通过验证的表单)会获得焦点。 | $(".selector").validate({ focusInvalid:false}) |
focusCleanup:类型 Boolean,默认 false。当未通过验证的元素获得焦点时,移除错误提示(避免和 focusInvalid 一起使用)。 | $(".selector").validate({ focusCleanup:true}) |
errorClass:类型 String,默认 "error"。指定错误提示的 css 类名,可以自定义错误提示的样式。 | $(".selector").validate({ errorClass:"invalid"}) |
errorElement:类型 String,默认 "label"。指定使用什么标签标记错误。 | $(".selector").validate errorElement:"em"}) |
wrapper:类型 String,指定使用什么标签再把上边的 errorELement 包起来。 | $(".selector").validate({ wrapper:"li"}) |
errorLabelContainer:类型 Selector,把错误信息统一放在一个容器里面。 | $("#myform").validate({ errorLabelContainer:"#messageBox", wrapper:"li", submitHandler:function() { alert("Submitted!") }}) |
showErrors:跟一个函数,可以显示总共有多少个未通过验证的元素。 | $(".selector").validate({ showErrors:function(errorMap,errorList) { $("#summary").html("Your form contains " + this.numberOfInvalids() + " errors,see details below."); this.defaultShowErrors(); }}) |
errorPlacement:跟一个函数,可以自定义错误放到哪里。 | $("#myform").validate({ rrorPlacement:function(error,element) { error.appendTo(element.parent("td").next("td")); }, debug:true}) |
success:要验证的元素通过验证后的动作,如果跟一个字符串,会当作一个 css 类,也可跟一个函数。 | $("#myform").validate({ success:"valid", submitHandler:function() { alert("Submitted!") }}) |
highlight:可以给未通过验证的元素加效果、闪烁等。 |
|