2012-06-16 113 views
0

我正在使用jquery驗證自定義方法。不知何故,我需要點擊兩次提交表格。如果您在提交之前生成了onblur事件,它將起作用。用自定義方法Jquery驗證我無法提交表單

我已經設置了一個字段,然後點擊以下鏈接中的驗證按鈕。我設置爲返回任何您輸入的內容,但如果您不點擊兩次或生成onblur並單擊,則無法提交表單。我在這裏做錯了什麼?

http://skoizumi.com/autocomplete/

jQuery.validator.addMethod("contractorName", function (value, element) { 
      console.log('1'); 
      console.log(element); 
      //$('#searchtext').autocomplete('close'); 

      var result = false; 
      var contractorName = $("#searchtext").val(); 

      //validating the specified field has a valid name 
      $.ajax({ 
       type: "GET", 
       url: "/autocomplete/testdata.php", 
       dataType:"json", 
       async: false,      
       complete: function(){ 

       }, 
       success: function(msg) 
       {       
        console.log(msg); 
        result = true;       

       }    
      }); 
      console.log('2'); 
      return result; 
     }, "Specified Contractor doesn't exist"); 


     $("#myform").validate(
     { 
      rules:{ 
        searchtext: { 
         contractorName: true  
        } 
      }, 
      onsubmit: false, 
      onkeyup: false 
     }); 

回答

1

最後,我設法找到解決辦法。不知何故,當我把onfocusout設置爲true時,我無法發佈有效數據。通過添加自定義方法,您不需要將服務器端更改爲true/false,但可以決定完整功能。 http://skoizumi.com/autocomplete/index.html如果你輸入「European Nightjar」,你可以通過一些錯誤提交表格。

+0

答案中的網址已損壞。你可以嘗試修復它嗎? – Nightfirecat

+0

我在這裏更新了源代碼。 http://skoizumi.com/autocomplete/index.html不幸的是,我需要點擊兩次才能在選擇「歐洲夜鷹」後發佈數據 – powerfade917

0

AJAX是異步如此result在你的方法將總是返回false。使用內置的remote插件的方法。 http://docs.jquery.com/Plugins/Validation/Methods/remote#options

+0

確定讓我試試遠程選項。我猜「異步:假」不起作用 – powerfade917

+0

我設置爲選項,但仍然是相同的。現在我甚至不能顯示錯誤信息。 http://alturl.com/4s7ys我猜你要麼使用$ .ajax,要麼遠程使用$ .ajax。如何來「異步:錯誤」不工作? – powerfade917

+0

顯然這個問題只出現在Firefox中。 – powerfade917