2012-07-06 35 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是否有效