jQuery 调用 DOM 提交方法时未触发提交事件

jQuery submit event not fired when calling DOM submit method

当我使用时 DOM form submit method to submit a form, the jQuery submit event handler 没有被调用,即使 w3c 说:"It performs the same action as a submit button."

我试过 jQuery 1.11.0 和 2.1.0。

<form id="form">
    <button type="button" onclick="document.getElementById('form').submit()">submit onClick</button>
</form>

有关完整示例,请参阅 http://jsfiddle.net/g0kxmdmw/6/

在Firefox和Chrome中,在文本输入中按回车,点击"submit button"和"submit jquery"都会触发处理程序并取消表单提交,而"submit onClick" 和 "submit js dom" 不会触发处理程序,并将执行提交(GET 请求)。

我预计调用提交方法会显示与单击提交按钮相同的行为,但事实并非如此。这是 jQuery 中的错误吗?

不,调用表单的 submit() 方法不会触发提交事件,因此 none 的事件处理程序将被触发。

仅当用户通过单击按钮或任何此类操作触发提交事件时,才会触发提交事件。

submit event

The form's onsubmit event handler (for example, onsubmit="return false;") will not be triggered when invoking this method from Gecko-based applications. In general, it is not guaranteed to be invoked by HTML user agents.