2012-11-09 43 views
0

這是我的方法:jquery.validate:addMethod使用Ajax不是返回true

$.validator.addMethod("password_verify_old", function(value, element){ 


    $.ajax({ 
     type: "GET", 
     url: verify_old_password_url, 
     data: {oldPassword: value}, 
     dataType: "json", 
     success: function (msg) { 
      return eval(msg); 
     } 
     }); 



}, "Old password is incorrect."); 

在這裏,我打電話給我的控制器,只返回一個 「真」 的字符串。爲什麼jquery.validate.js將此解釋爲'false'?

+1

也許是因爲AJAX是異步的,所以您的有效當響應到達時,已完成吃完功能... – Tallmaris

回答

1

我不相信你可以添加使用addMethod調用AJAX

你所尋找的是在規則遠程選項,這將使一個AJAX調用的輸入值指定URL的驗證方法

$(form).validate({ 
     rules:{ your_field :{ 
       required:true, 
       remote: check_passwordurl, 

哦,是啊有你的支票密碼的URL返回一個true或false,否則你將需要一些待辦事項額外的編碼,因爲這SO顯示 How to use jQuery to remotely validate a field that depends on another field in the form?