2012-07-06 39 views
1
$('#reg_form').validate({ 
       onkeyup: false, 
       errorClass: 'error', 
       validClass: 'valid', 
       rules: { 
        username: { 
         required: true, 
         minlength: 5, 
         //remote: "user_check.php" 
        }, 
        password: { 
         required: true, 
         minlength: 5 
        }, 
        confirm_password: { 
         required: true, 
         minlength: 5, 
         equalTo: "#password" 
        }, 
        secretQuestion: "required", 
        secretAnswer: "required", 
        emailId: { 
         required: true, 
         email: true 
        }, 
        termsConditions: "required"     
       }, 
       messages:{ 
        username: { 
         required: "Please enter Username", 
         minlength: "Please enter atleast 5 characters", 
         //remote: jQuery.format("{0} is already in use") 
        }, 
        password: { 
         required: "Please provide a password", 
         minlength: "Your password must be at least 5 characters long" 
        }, 
        confirm_password: { 
         required: "Please provide a password", 
         minlength: "Your password must be at least 5 characters long", 
         equalTo: "Please enter the same password as above" 
        }, 
        secretQuestion: "Please select your question", 
        secretAnswer: "Please enter your secret answer", 
        emailId: "Please enter a valid email address", 
        termsConditions: "Please accept our Terms and COnditions" 
       }, 
       highlight: function(element) { 
        $(element).closest('div').addClass("f_error"); 
       }, 
       unhighlight: function(element) { 
        $(element).closest('div').removeClass("f_error"); 
       }, 
       errorPlacement: function(error, element) { 
        $(element).closest('div').append(error); 
       } 
      }); 
+1

不,它不工作 – Sachin 2012-07-06 12:00:37

+0

我有3个窗体在一个文件中。 equalTo()不起作用。请帮我 – Sachin 2012-07-06 12:29:43

+2

这是很多赞成票没有解释...成为更好的人! – Ryley 2012-07-06 15:07:16

回答

3

似乎没有任何理由说明为什么在代码中显然会失败。假设你的密码输入有id="password",一切都应该没问题。

我创建了一个缩短例子展示了equalTo规则工作:http://jsfiddle.net/ryleyb/MnnE5/

在未来,对于这样的问题,尽量让演示您的问题尽可能小的例子 - 我们并不需要有规则并为您的整个表单,只有2个密码字段的消息。发布相关的HTML表单标记也是有帮助的。

+0

你的意思是链接到[SSCCE](http://sscce.org/)这是一个很好的资源。 – 2012-07-06 15:16:20

+0

@izuriel - 可爱的链接,我将在未来使用:) – Ryley 2012-07-06 15:49:12

+0

对不起,它只是这样来。 – Sachin 2012-07-11 07:42:21

0

是的,这是直线不起作用。

火狐17.0.1
的jQuery 1.8.3
jQuery的验证插件1.10.0

它不工作,如果你只是使用的字段名称:

... equalTo = “密码”。 ...

相反,需要使用ID:

... equalTo = “#密码” ....

+0

是的,这就是你应该如何使用它。请参阅文档中的示例:http://docs.jquery.com/Plugins/Validation/Methods/equalTo – 2012-12-14 09:23:43

4

当您通过“rules:”设置验证时,您需要输入的“名称”而不是“id”。

因此,对于这样的输入:

<input type="text" name="password_name" id="password_id></input> 
<input type="text" name="confirm_password_name" id="confirm_password_id></input> 

你应该在验证更改此:

password_name: { 
    required: true, 
    minlength: 5 
}, 
confirm_password_name: { 
    required: true, 
    minlength: 5, 
    equalTo: "#password_id" 
} 

希望它会工作。

0

只要确保没有对html页面检查相同的ID包含的模板也

注:测试只是改变ID喜欢register_pass和login_pass或只是PASS1
1)。如果成功,那么id不是唯一的你的html
2)。如果失败,然后打开控制台检查,如果jQuery或验证js是否有效