2010-07-08 65 views
0

我遇到了麻煩確定叫什麼來使我的表格不提交時,我叫.submit()通過JavaScript不工作

$('#form').submit(); 

通過JavaScript(但提交罰款當我點擊提交按鈕)。所以,我想補充這一段代碼來進行測試:

$('#form').live('submit', function() 
{ 
    alert('submitting form'); 
    return true; 
}); 

現在,當我點擊提交按鈕,警報顯示,然後表單提交。當我撥打電話時:

$('#form').submit(); 

通過javascript,提示顯示,但表單不提交。現在我通過ajax將表單拖動到模式窗口中,因此不確定這與此有什麼關係。任何人都知道可能會導致這個問題?

回答

2

submit事件不支持live函數。

從jQuery API:點擊,DBLCLICK,KEYDOWN:

在jQuery的1.3.x的只有以下 JavaScript事件(除了 自定義事件)可以與 .live()綁定, keypress,keyup,mousedown,mousemove, mouseout,mouseover和mouseup。由於jQuery 1.4的 ,.live()方法 支持自定義事件以及所有的 JavaScript事件。截至jQuery 1.4.1 甚至焦點和模糊工作與生活 (映射到更合適的,冒泡,事件focusin和 專注)。從jQuery 1.4.1開始,可以指定 懸停事件(將 映射到「mouseenter mouseleave」)。

+0

我試着將提交按鈕輸入類型切換爲按鈕而不是提交,並在該按鈕上單擊.live()事件。 .live事件中的ajax請求運行正常,但在該click事件中通過javascript調用時仍不會執行form.submit()方法。 – ryanzec 2010-07-08 19:41:32

+0

你有沒有嘗試我在我的答案中提供的內容。本來會認爲會有效的。 – 2010-07-19 06:18:32

0

嘗試調用提交()的HTMLFormElement對象:

$("#form")[0].submit(); 

同樣的結果嗎?

+0

會做同樣的$(「#form」)。因爲id只能使用一次。除非你的意思是$(「form」)[0] .submit(); – 2010-07-09 08:52:37

0
$("#form").trigger('submit'); 

???