2014-10-16 146 views
-1

我正在使用jquery驗證插件來驗證我的表單。下面的功能,顯示檢測到錯誤的每個字段下的錯誤。jquery函數if語句

errorPlacement : function(error, element) { 
      error.insertAfter(element.parent()); 

     } 
    }); 

如何評估此功能是否已被使用「屏幕上顯示錯誤」?

我想要的是評估表單是否已經過驗證,因此我可以執行其他邏輯,例如禁用提交按鈕或將按鈕文本更改爲「請稍等」。

我不知道我該如何去做。

任何幫助,將不勝感激。 謝謝

+1

怎麼樣做一個演示? – Manwal 2014-10-21 04:41:20

+0

請參閱:http://stackoverflow.com/q/21953694/594235 – Sparky 2014-10-27 00:49:46

+0

我已經回答了關於這個插件的一千個問題,但我從來沒有見過任何人需要告訴如果有另一種方法時曾經產生過錯誤這將可靠地告訴你何時該表格有效。你也沒有清楚地解釋爲什麼你想看看這個特定的回調是否已經被解僱。如果我們更瞭解您的具體要求,我們可能會提出更好的方法。到底什麼時候你想讓按鈕被啓用和禁用?到底什麼時候你想改變按鈕的文字?等等? – Sparky 2014-10-27 23:35:05

回答

1

你可以使用submitHandler,因爲它是一個回調處理實際當表單有效提交。所以,

$("#your-form").validate({ 
    ..... 
    submitHandler: function(){ 
     //form is valid 
     //do some logic 
     $('#your_submit_btn_id').attr('disabled','disabled'); 
    }, 
    ..... 
}); 
0

您可以隨時處理使用此代碼提交事件:

$("#myform").validate({ 
    submitHandler: function(form) { 
    // some other code 
    // maybe disabling submit button // $('#submit').attr('disabled', true); 
    // then: 
    $(form).submit(); 
    } 
}); 

submitHandler只會被調用一次的形式得到確認&沒有錯誤。

文檔可以在這裏找到:http://jqueryvalidation.org/documentation/

3

你爲什麼不只是設置一個布爾變量,指示方法被調用:

hasError: false, 
errorPlacement : function(error, element) { 
    error.insertAfter(element.parent()); 
    this.hasError = true 
} 

然後你可以檢查hasError每當你需要。請務必將hasError存儲在對象上,以免污染全局名稱空間。

-1
$('#myform').on('submit', function(){ 
    if($(this).valid()) //this returns true if the form is valid, and false if there is some validation error 
    { 
     //submit the form 
    } 
    else 
    { 
     //disable the submit button or change text as desired 
     return false; //to avoid form submission 
    } 

});