2011-07-31 43 views
6

我正在使用jQuery驗證插件進行表單驗證。它很好用,但是如果DOM沒有被完全加載,並且你點擊了提交按鈕,那麼文檔將忽略驗證並進入一個在「action」屬性中指定的頁面。是否有可能阻止提交按鈕提交,直到DOM加載?是否可以阻止提交按鈕提交,直到DOM加載?

<form ... onsubmit="return false;"> 
.... 
</form> 

然後在JavaScript中,改變要「激活」,當你準備的形式onsubmit處理程序:

回答

6

如果你生成你像這樣的提交按鈕:

<input type="submit" id="submit" value="submit" disabled="disabled"/> 

然後,你可以把這個在您的$(document).ready(之後的驗證插件已經被初始化:

$("#submit").prop("disabled", false); 

演示:http://jsfiddle.net/nZVrs/

+0

這就是我會做的。 – ninetwozero

+1

該解決方案的缺點是,您的表單不適用於JavaScript。 – Peter

+0

也可以通過在文本輸入上按ENTER鍵來提交表單,因此您可能還需要禁用表單中的所有輸入... –

4

你可能喜歡的東西最初發出的形式。

0

DOMContentLoaded被解僱之前,如何提交表格?只是好奇?

如果它是window.onload我們在談論然後我會理解,因爲一個頁面可能需要一些時間來完全加載(尤其是如果內容以前沒有緩存),但DOMContentLoaded

在大多數情況下,它在頁面開始渲染後觸發很快,幾乎不可能很快並提交表單。