2013-08-18 62 views
0

我們目前綁定到提交按鈕的點擊事件(我們沒有綁定到表單的提交事件是有原因的)。是否保證我們的JS將在表單提交之前運行(因爲我們正在向要提交的隱藏字段中輸入值),還是需要阻止表單提交併再次調用提交?綁定到提交按鈕的點擊事件,我們的JS會在表單提交之前運行嗎?

$(function() { 
    $('#button').on('click', function() { 
     // Do some stuff here - needs to finish before the form submits 

     return true; 
    }); 
}); 

在此先感謝!

+3

只要你「做一些東西在這裏」不包括任何異步代碼,你會沒事的。什麼是你沒有綁定到提交事件的原因?(你知道如果需要,你可以綁定多個提交處理程序到相同的表單) – nnnnnn

+0

我認爲提交操作是最後一步,但你總是可以嘗試兩種方式,看看哪些一個工程 –

回答

0

在我的介紹中,click事件中的代碼總是先運行。

我剛剛運行了一個循環10,000次的最新chrome的簡單測試。表格直到循環結束後纔會提交(〜5秒)。

如果您嘗試在點擊功能中運行一些ajax調用或setTimeout,表單很可能在您的回調/ ajax完成之前提交。

0

它會在發送提交事件之前工作,但您只能監聽click事件。如果用戶點擊enter,表單將被提交而不運行您的代碼。我認爲你應該堅持submit事件。回調函數將接收作爲參數event(你可以做這樣的事情e.preventDefault();e.stopPropagation();

$("form").on("submit",function(event){});