1. 程式人生 > >jquery校驗 remote快取 remote只驗證一次 解決辦法

jquery校驗 remote快取 remote只驗證一次 解決辦法

    jquery校驗,為了實現非同步使用者名稱是否存在功能,往往要用 jquery remote方法,然而,用remote方法,往往會有快取,只請求一次,即使內容改變,錯誤結果還是一樣。

折騰了兩天,什麼修改jquery原始檔,或者加程式碼清空第一次產生的快取,各種辦法都沒用。又不想放棄jquery alidate的各種好處。最後不得已使用ajax和jquery共同實現校驗。

實現方法。使用jquery alidate的自定義新增驗證方法,新增一個驗證方法,方法如下:

//校驗使用者名稱是否存在
        jQuery.validator.addMethod("usernamecz", function (value, element) {
            var poin;
            $.ajax({  
              type : "post",  
              url : "/ashx/Check.ashx",  
              data : "userid=" + $("#username").val(),   
              async : false,  
              success : function(data){
                  data = eval("(" + data + ")");  
                  poin = data;  
                  }  
          });  
            return this.optional(element) || poin;
        });

自定義方法的返回值   return this.optional(element) || poin;   驗證結果由poin變數所決定。

使用例子:

  rules: {
                    username: {
                    required: true,
                    usernamecz: true
                 

   },

 messages: {


                username: {
                    required: "請輸入使用者名稱",
                    usernamecz: "使用者名稱已被佔用"
                }