2015-04-12 63 views
1

我試圖趕上使用攔截自動錶單提交事件在JavaScript/jQuery的

document.querySelector('#submitform').addEventListener('submit', function(e) { /* code */ }); 

工作正常形式

<form action='/post' name='submitform' id="submitform" method='post' class='pure-form'> 
<textarea columns="40" rows="4" name='entry[body]' id="statement"></textarea> 
<input type='submit' id="submitbutton" name="btnSubmit" value="save" class="pure-button pure-button-primary"> 
</form> 

一個提交申請,如果我點擊提交按鈕

但是當我打電話時

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

document.forms["submitform"].submit(); 

表單提交繞過我的事件偵聽器。

爲什麼?

+0

嘗試使用jQuery'$( '#submitform')提交(函數(五){返回false;});' – jcubic

回答

1

你可以試試這個:

$('#submitbutton').trigger('click'); 
+1

好吧,真實的,但我'寧可攔截submit()調用 - 你可能會這麼想嗎? –

+0

看來,瀏覽器不支持這一點。請參閱http://lists.w3.org/Archives/Public/www-dom/2012JanMar/0011.html – yibuyisheng

0

可以攔截的jQuery通過提交功能一起提供的事件處理程序提交調用。

$("#submitform").submit(function(event) { 
    alert("Handler for .submit() called."); 
    event.preventDefault(); 
}); 

欲瞭解更多信息 https://api.jquery.com/submit/