jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。
一、导入js库
四、使用方式
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<title>jQuery Validate验证框架详解-<a href="/tag/Meta/" target="_blank" class="keywords">Meta</a>data<a href="/tag/yongfa/" target="_blank" class="keywords">用法</a></title>
<<a href="/tag/Meta/" target="_blank" class="keywords">Meta</a> http-equiv="pragma" content="no-cache">
<<a href="/tag/Meta/" target="_blank" class="keywords">Meta</a> http-equiv="cache-control" content="no-cache">
<<a href="/tag/Meta/" target="_blank" class="keywords">Meta</a> http-equiv="expires" content="0">
<<a href="/tag/Meta/" target="_blank" class="keywords">Meta</a> http-equiv="keywords" content="keyword1,keyword2,keyword3">
<<a href="/tag/Meta/" target="_blank" class="keywords">Meta</a> http-equiv="description" content="This is my page">
<script type="text/javascript" src="<%=request.getContextPath()%>/validate/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/validate/jquery.validate.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/validate/jquery.<a href="/tag/Meta/" target="_blank" class="keywords">Meta</a>data.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/validate/messages_zh.js"></script>
<script type="text/javascript">
$(function(){
$("#myform").validate();
});
</script>
使用class="{}"的方式,必须引入包:jquery.Metadata.js;
在使用equalTo关键字时,后面的内容必须加上引号,如下代码:
2、将校验规则写到js代码中
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<title>jQuery Validate验证框架详解</title>
<<a href="/tag/Meta/" target="_blank" class="keywords">Meta</a> http-equiv="pragma" content="no-cache">
<<a href="/tag/Meta/" target="_blank" class="keywords">Meta</a> http-equiv="cache-control" content="no-cache">
<<a href="/tag/Meta/" target="_blank" class="keywords">Meta</a> http-equiv="expires" content="0">
<<a href="/tag/Meta/" target="_blank" class="keywords">Meta</a> http-equiv="keywords" content="keyword1,keyword3">
<<a href="/tag/Meta/" target="_blank" class="keywords">Meta</a> http-equiv="description" content="This is my page">
<script type="text/javascript" src="<%=request.getContextPath()%>/validate/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/validate/jquery.validate.min.js"></script>
<script type="text/javascript">
$(function(){
var validate = $("#myform").validate({
debug: true,//调试模式取消submit的默认提交<a href="/tag/gongneng/" target="_blank" class="keywords">功能</a>
//errorClass: "label.error",//默认为<a href="/tag/cuowu/" target="_blank" class="keywords">错误</a>的样式类为:error
focusInvalid: false,//当为false时,验证无效时,没有焦点响应
onkeyup: false,submitHandler: function(form){ //表单提交句柄,为一回调<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>,带一个参数:form
alert("提交表单");
form.submit(); //提交表单
},rules:{
myname:{
<a href="/tag/required/" target="_blank" class="keywords">required</a>:true
},email:{
<a href="/tag/required/" target="_blank" class="keywords">required</a>:true,email:true
},password:{
<a href="/tag/required/" target="_blank" class="keywords">required</a>:true,rangelength:[3,10]
},confirm_password:{
equalTo:"#password"
}
},messages:{
myname:{
<a href="/tag/required/" target="_blank" class="keywords">required</a>:"必填"
},email:{
<a href="/tag/required/" target="_blank" class="keywords">required</a>:"必填",email:"E-Mail格式不正确"
},password:{
<a href="/tag/required/" target="_blank" class="keywords">required</a>: "不能为空",rangelength: $.format("密码最小长度:{0},最大长度:{1}。")
},confirm_password:{
equalTo:"两次密码输入不一致"
}
}
});
});
</script>
五、常用方法及注意问题
1、用其他方式替代默认的submit
可以设置validate的默认值,写法如下:
如果想提交表单,需要使用form.submit(),而不要使用$(form).submit()
2、debug,只验证不提交表单
如果这个参数为true,那么表单不会提交,只进行检查,调试时十分方便
如果一个页面中有多个表单都想设置成为debug,用
3、ignore:忽略某些元素不验证
ignore: ".ignore"
4、更改错误信息显示的位置
errorPlacement:Callback
Default: 把错误信息放在验证的元素后面指明错误放置的位置,默认情况是:error.appendTo(element.parent());即把错误信息放在验证的元素后面
<td class="label"><label id="lfirstname" for="firstname">First Name</td>
<td class="field"></td>
<td class="status"></td>
</tr>
<tr>
<td style="padding-right: 5px;">
if (element.is(":radio"))
error.appendTo(element.parent().next().next());
else if (element.is(":checkBox"))
error.appendTo(element.next());
else
error.appendTo(element.parent().next());
}