2014-10-03 197 views
0

我有這個代碼進行驗證,但它顯示錯誤,即使它返回true。我將所有返回false更改爲true,但顯示錯誤。 秒我想要顯示result.message而不是「用戶名已被佔用」。jquery驗證沒有工作

$.validator.addMethod("uniqueUserName", function (value, element) { 
     $.ajax({ 
      type: "post", 
      url: "/validation/search", 
      data: { 
       nationalCode: $('#karkonan_MelliCode').val(), 
       personType: $('#karkonan_MelliatCode').val() 
      }, 
      dataType: "json", 
      async: false, 
      success: function (result) { 
       // alert(result.message); 
       // alert(result.resultCode); 
       // if the user exists, it returns a string "true" 
       if (result.resultCode == "0") { 
        alert($('#karkonan_MelliatCode').val());// already exists 
        //j = result.message;// already exists 
        return false; 
       } 
       else { 
        alert($('#karkonan_MelliatCode').val()); 
        return true;  // username is free to use 
       } 
      }, 
      error: function (result) { 
       // if the user exists, it returns a string "true" 
       alert("error"); 
       return false; 
       // username is free to use 
      } 
     }) 
    }, "Username is Already Taken"); 

,它的規則是:

'karkonan.MelliCode': { 
         number:true, 
         minlength: 10, 
         maxlength: 10, 
         required: true, 
         withmelliat:true, 
         uniqueUserName: true 
        }, 

回答

1

addMethod可能馬上要回調的響應。

您執行一個Ajax並且響應是異步的。您的successerror處理程序中的return語句不適用addMethod返回值(在Ajax請求之後和響應之前立即完成)。

要檢查,添加這裏return true;

}); 
    return true; 
}, "Username is Already Taken"); 

我沒有帶解決方案還沒有,我(和你)來讀取你的validator plugin documentation

您還必須閱讀該插件的remote屬性:here the documentation

+0

動態result.message怎麼樣?我可以顯示動態消息嗎? – 2014-10-03 07:44:20

+0

沒關係。我發現我如何使用動態消息。謝謝。 – 2014-10-03 07:55:48

0

error被稱爲如果AJAX請求失敗,如果您的腳本返回一些錯誤不會! 這個函數接收三個參數:

jqXHR(jQuery中1.4.x中,XMLHttpRequest)對象,描述錯誤的發生的類型和一個可選的異常對象,如果發生一個字符串。

作爲第二個參數(除了null)可能的值是timeouterrorabort,並parsererror。發生HTTP錯誤時,errorThrown會收到HTTP狀態的文本部分,例如Not FoundInternal Server Error

從jQuery 1.5開始,錯誤設置可以接受一組函數。每個函數都會依次調用。 注意:此處理程序是未調用跨域腳本和跨域JSONP請求。

有爭議的是,如果AJAX請求本身成功,即如果瀏覽器可以正確發送請求,success是一個函數,稱爲

這個函數會得到三個參數:

的數據從服務器返回,根據dataType參數格式化;描述狀態的字符串;和jqXHR(在jQuery 1.4.x,XMLHttpRequest)對象中。