jquery validate 使用

  1. $(document).ready(function() {   
  2.     // validate signup form on keyup and submit   
  3.     var validator = $("#signupform").validate({   
  4.         rules: {   
  5.             firstname:{   
  6.                 required: true,   
  7.                 digits: true  
  8.             },   
  9.             lastname: "required",   
  10.             username: {   
  11.                 required: true,   
  12.                 minlength: 2,   
  13.                 remote: "users.php"  
  14.             },   
  15.             password: {   
  16.                 required: true,   
  17.                 minlength: 5  
  18.             },   
  19.             password_confirm: {   
  20.                 required: true,   
  21.                 minlength: 5,   
  22.                 equalTo: "#password"  
  23.             },   
  24.             email: {   
  25.                 required: true,   
  26.                 email: true,   
  27.                 remote: "emails.php"  
  28.             },   
  29.             dateformat: "required",   
  30.             terms: "required"  
  31.         },   
  32.         messages: {   
  33.             firstname: {   
  34.                 required:"Enter your firstname",   
  35.                 digits:"Enter a number"  
  36.             },   
  37.             lastname: "Enter your lastname",   
  38.             username: {   
  39.                 required: "Enter a username",   
  40.                 minlength: jQuery.format("Enter at least {0} characters"),   
  41.                 remote: jQuery.format("{0} is already in use")   
  42.             },   
  43.             password: {   
  44.                 required: "Provide a password",   
  45.                 rangelength: jQuery.format("Enter at least {0} characters")   
  46.             },   
  47.             password_confirm: {   
  48.                 required: "Repeat your password",   
  49.                 minlength: jQuery.format("Enter at least {0} characters"),   
  50.                 equalTo: "Enter the same password as above"  
  51.             },   
  52.             email: {   
  53.                 required: "Please enter a valid email address",   
  54.                 minlength: "Please enter a valid email address",   
  55.                 remote: jQuery.format("{0} is already in use")   
  56.             },   
  57.             dateformat: "Choose your preferred dateformat",   
  58.             terms: "Choose this checkbox "  
  59.         },   
  60.         // the errorPlacement has to take the table layout into account   
  61.         errorPlacement: function(error, element) {   
  62.             if ( element.is(":radio") )   
  63.                 error.appendTo( element.parent().next().next() );   
  64.             else if ( element.is(":checkbox") )   
  65.                 error.appendTo ( element.next() );   
  66.             else  
  67.                 error.appendTo( element.parent().next() );   
  68.         },   
  69.         // specifying a submitHandler prevents the default submit, good for the demo   
  70.         submitHandler: function() {   
  71.             alert("submitted!");   
  72.         },   
  73.         // set this class to error-labels to indicate valid fields   
  74.         success: function(label) {   
  75.             // set   as text for IE   
  76.             label.html(" ").addClass("checked");   
  77.         }   
  78.     });   
  79.        
  80.     // propose username by combining first- and lastname   
  81.     $("#username").focus(function() {   
  82.         var firstname = $("#firstname").val();   
  83.         var lastname = $("#lastname").val();   
  84.         if(firstname && lastname && !this.value) {   
  85.             this.value = firstname + "." + lastname;   
  86.         }   
  87.     });   
  88.     
  89. });  


两个问题:
1.后边的success: function(label)这里的label参数传进的是什么,是哪来的?
2.如果自定义正则表达式来匹配,怎么写?

代码地址:http://jquery.bassistance.de/validate/demo/milk/


问题补充:
谢谢jones:按你的提示看了下源码,errorPlacement: function(error, element)这里的error参数传进来的就是一个label。

还有第2个问题是是否可以用自定义的正则表达式?难道要改源码在源码里定义?

再附带个小疑问:)这里:
Java代码 复制代码
  1. // set   as text for IE     
  2. label.html(" ").addClass("checked");  

这里为IE在label里放一个空格什么讲究呢?

采纳的答案

2008-11-11 jones (架构师)

引用
还有第2个问题是是否可以用自定义的正则表达式?难道要改源码在源码里定义?

这个当然不用修改源代码,插件本身提供的API可以添加新的验证方法,看这个:
http://docs.jquery.com/Plugins/Validation/Validator/addMethod#namemethodmessage

引用
这里为IE在label里放一个空格什么讲究呢?

因为在IE中如果<td></td>这样的html显示和FF等其它浏览器中<td></td>显示的宽度不一样的,IE中如果你的<td></td>中啥都没有显示的时候就会忽略table中指定的td宽度,随便添加一个东西,<td></td>的宽度才能继承过来,如果你不是在td中显示错误信息,那么这个
Java代码 复制代码
  1. .html("&nbsp;")  
就没必要了,只适用于td

posted on 2010-05-06 16:29  南工磊磊03632  阅读(337)  评论(0编辑  收藏  举报

导航