Jquery.validate表单验证

 1 <html>
 2     
 3     <head>
 4         <script src="jquery-1.7.2.min.js" type="text/javascript"></script>
 5         <script src="jquery.validate.js" type="text/javascript"></script>
 6     </head>
 7     
 8     <body>
 9     
10         <form id="demo_form" action="#">
11             <table style="border:1px red solid">
12                 <tr style="border:1px red solid">
13                     <td  style="border:1px red solid">
14                         姓名
15                     </td>
16                     <td  style="border:1px red solid">
17                         <input type="text" name="username" >
18                     </td>
19                     <td  style="border:1px red solid">
20                         <span></span>
21                     </td>
22                 </tr>
23                 <tr style="border:1px red soild">
24                     <td  style="border:1px red solid">
25                         年龄
26                     </td>
27                     <td  style="border:1px red solid">
28                         <input type="text" name="age" >
29                     </td>
30                     <td  style="border:1px red solid">
31                         <span></span>
32                     </td>
33                 </tr>
34                 <tr style="border:1px red solid">
35                     <td  style="border:1px red solid" colspan="2">
36                         <input type="button" name="submit_btn" value="提交" >
37                     </td>
38                 </tr>
39             </table>
40         <form>
41         
42     </body>
43     
44     <script>
45     
46         //定义验证规则
47         $("#demo_form").validate({
48             focusCleanup:true,
49             onkeyup:false, 
50             errorPlacement: function(error, element) {  
51                 //showErrorMesssgeDiv(error,element);
52                 $(element).parent('td').next('td').children('span').html(error[0]);
53             },   
54             rules:{
55                username:{
56                    required:true,
57                    minlength:3,
58                    maxlength:10
59                 },
60                 age:{
61                     required:true,
62                     digits:true
63                 }
64             },
65             messages:{
66                 username:{
67                    required:"用户名必须填",
68                    minlength:"用户名不能少于3个字符",
69                    maxlength:"用户名不能大于10个字符"
70                 },
71                 age:{
72                     required:"年龄必须填",
73                     digits:"年龄必须为数字"
74                 }
75             }
76         });
77         
78         $("input[name='submit_btn']").unbind("click").bind("click",function(){
79             if ( $("#demo_form").valid() )
80             {
81                 alert("验证通过!!");
82             }
83         });
84         
85         
86     </script>
87     
88 </html>

Jquery.validate 一些属性配置:

required:true              

必填字段

remote:"check.php"         

使用ajax方法调用check.php验证输入值

email:true                 

必须输入正确格式的电子邮件

url:true                   

必须输入正确格式的网址

date:true                  

必须输入正确格式的日期

dateISO:true                

必须输入正确格式的日期(ISO),例如:2010-01-01,2010/01/01 只验证格式,不验证有效性

number:true                

必须输入合法的数字(负数,小数)

digits:true                

必须输入整数

creditcard:                

必须输入合法的信用卡号

equalTo:"#field"          

输入值必须和$(“#field”)相同

accept: "gif|png|jpg"

输入拥有合法后缀名的字符串(上传文件的后缀),多个后缀之间用’|’隔开

maxlength:5               

输入长度最多是5的字符串(汉字算一个字符)

minlength:3              

输入长度最小是3的字符串(汉字算一个字符)

rangelength:[5,10]        

输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符)

range:[5,10]              

输入值必须介于 5 和 10 之间

max:5                      

输入值不能大于5

min:10                    

输入值不能小于10

 

说明:

  remote是远程验证:比如注册验证用户名是否已被注册,返回值只能是true(验证成功)或false(验证失败)。在访问指定的url时,会自动把当前字段的值做为参数(以字段name为key)传递过去。

某些属性值中的引号不能省略,否则出错。如accept、equalTo等。

 

  remote使用时遇到的问题:添加用户时需要验证用户名是否存在,当添加上一个用户后,在不离开该页面的情况下,再次添加该用户名的用户,validate不能提示该用户已存在,因为缓存的原因,jquery仍认为该用户名可用。解决方法是在页面中添加:

$().ready(function(){

  $.ajaxSetup ({

    cache: false //关闭AJAX相应的缓存

  }); // 关闭缓存功能

});

自定义验证规则

  除了内置的验证规则,validation还允许自定义验证规则。这是通过validation的addMethod()方法实现的,语法 为:  

    jQuery.validator.addMethod("name",function,message)

  其中:

    name    为验证规则的名称

    function  定义验证的规则。参数有?。返回值为?。

    message  是验证失败时的提示信息。

 

//更改默认的提示内容
jQuery.extend(jQuery.validator.messages, {
    required: "必填字段",
    remote: "请指定一个不重复的值",
    email: "请输入正确格式的电子邮件",
    url: "请输入合法的网址",
    date: "请输入合法的日期",
    dateISO: "请输入合法的日期 (ISO).",
    number: "请输入合法的数字",
    digits: "只能输入整数",
    creditcard: "请输入合法的信用卡号",
    equalTo: "请再次输入相同的值",
    accept: "请输入拥有合法后缀名的字符串",
    maxlength: jQuery.validator.format("允许的最大长度为 {0} 个字符"),
    minlength: jQuery.validator.format("允许的最小长度为 {0} 个字符"),
    rangelength: jQuery.validator.format("允许的长度为{0}和{1}之间"),
    range: jQuery.validator.format("请输入介于 {0} 和 {1} 之间的值"),
    max: jQuery.validator.format("请输入一个最大为 {0} 的值"),
    min: jQuery.validator.format("请输入一个最小为 {0} 的值")
});

 

改变错误消息显示样式

指定label.error的样式就可以了,如下:

<style type="text/css">

  label.error{

    margin-left: 10px;

    color: red;

  }

</style>

 

说明:label.error指class为error的label元素,如:<label for="resource" class="error">

 

posted @ 2016-03-16 17:20  登高一呼  阅读(305)  评论(0编辑  收藏  举报