2015-04-12 65 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/