jquery validate
jQuery(function($) {
// 验证
$("#appendinfo").validate( {
debug : false,
rules : {
"user.userName" : {
required : true,
maxlength : 500
}
},
messages : {
"user.userName" : {
required : "用户名不能为空",
maxlength : "请不要超过500个字符"
}
},
errorPlacement : function(error, element) {
error.appendTo(element.parent());
}
});
});
一、用前必备
官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/
API: http://jquery.bassistance.de/api-browser/plugins.html
当前版本:1.8.1
需要JQuery版本:1.3.2+, 兼容 1.3.2
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery.validate.js" type="text/javascript"></script>
<script src="js/jquery.metadata.js" type="text/javascript"></script>
二、默认校验规则
(1)required:true 必输字段
(2)remote:"check.php" 使用ajax方法调用check.php验证输入值
(3)email:true 必须输入正确格式的电子邮件
(4)url:true 必须输入正确格式的网址
(5)date:true 必须输入正确格式的日期
(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
三、默认的提示
messages: {
required: "This field is required.",
remote: "Please fix this field.",
email: "Please enter a valid email address.",
url: "Please enter a valid URL.",
date: "Please enter a valid date.",
dateISO: "Please enter a valid date (ISO).",
dateDE: "Bitte geben Sie ein g眉ltiges Datum ein.",
number: "Please enter a valid number.",
numberDE: "Bitte geben Sie eine Nummer ein.",
digits: "Please enter only digits",
creditcard: "Please enter a valid credit card number.",
equalTo: "Please enter the same value again.",
accept: "Please enter a value with a valid extension.",
maxlength: $.validator.format("Please enter no more than {0} characters."),
minlength: $.validator.format("Please enter at least {0} characters."),
rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),
range: $.validator.format("Please enter a value between {0} and {1}."),
max: $.validator.format("Please enter a value less than or equal to {0}."),
min: $.validator.format("Please enter a value greater than or equal to {0}.")
}
可以直接修改默认的信息
使用方式一(直接在文本框的class中写验证规则)
<script type="text/javascript">
$(document).ready(function() {
$("#commentForm").validate();
});
</script>
html 页面代码:
直接在输入的文本框中写class="required email"验证规则,还有josn数据格式的class="{required:true,email:true}"
<fieldset>
<legend>请输入姓名和邮件地址!</legend>
<p>
<label for="cname">姓名 (必填,至少两个字符)</label>
<input id="cname" name="name" class="required" minlength="2" />
</p>
<p>
<label for="cemail">邮箱 (必填)</label>
<input id="cemail" name="email" class="{required:true,email:true}" />
</p>
<p>
<label for="curl">网址 (可选)</label>
<input id="curl" name="url" class="url" value="" />
</p>
<p>
<label for="ccomment">留言 (必填)</label>
<textarea id="ccomment" name="comment" class="required"></textarea>
</p>
<p>
<input class="submit" type="submit" value="Submit"/>
</p>
</fieldset>
</form>
使用方式二,自定义rules验证规则,测试的页面代码是上面的
<script type="text/javascript">
$(document).ready(function() {
//$("#commentForm").validate();
$("#commentForm").validate({
rules:{
cname:{
required:true,
rangelength:[2,10]
}
}
//自定义验证信息
message:{
cname:{
required:"用户名不能为空",
rangelength:$.validator.format("输入的范围在 {0}-{1} 之间的字符.")
}
}
})
});
</script>
最后为了提高用户体验,
样式应该这样写:
/************jQuery.Validate插件样式开始********************/
label.error
{
background: url(images/error.png) no-repeat 0px 0px;
color: Red;
padding-left: 20px;
}
label.success
{
background:url("images/checked.gif") no-repeat 0px 0px;
}
input.error
{
border: dashed 1px red;
}
/************jQuery.Validate插件样式结束********************/
</style>
注意:其中的label是默认的装载提示信息的文本框,其中的error也是默认的样式,而success是添加的
脚本代码应该改为:
<fieldset>
<legend>请输入姓名和邮件地址!</legend>
<p>
<label for="cname">姓名 (必填,至少两个字符)</label>
<input id="cname" name="name" class="required" minlength="2" />
</p>
<p>
<label for="cemail">邮箱 (必填)</label>
<input id="cemail" name="email" class="required email" />
</p>
<p>
<label for="curl">网址 (可选)</label>
<input id="curl" name="url" class="url" value="" />
</p>
<p>
<label for="ccomment">留言 (必填)</label>
<textarea id="ccomment" name="comment" class="required"></textarea>
</p>
<p>
<input class="submit" type="submit" value="Submit"/>
</p>
</fieldset>
</form>
测试的源码提供下载(和博客的有点不一样,因为我是写给自己备忘的,不过是源码中提炼出来的):/Files/Jaylong/表单验证.zip