jquery - 为什么不通过表单元素上的 Submit 方法提交表单调用 $.submit 处理程序?

标签 jquery forms

参见http://jsfiddle.net/8KNc7/5/有关我正在讨论的内容的工作示例(目前在 Firefox 15 中进行测试,尚未尝试其他版本)。

我有一个带有 submit 输入和 button 输入的表单,它们都将表单数据提交到服务器,但只有 submit输入导致 jQuery 提交事件运行。这是为什么?

表格:

<form action='/echo/html/' method='post' id='Form' name='Form'>
    <input type='hidden' value='posted' id='html' name='html'>
    <input type='submit' id='submit1' value='submit type'>
    <input type='button' id='submit2' value='button type' onclick='submitForm();'>
</form>

Javascript(在 body 标记末尾运行):

var theForm = document.forms['Form'];
if (!theForm) {
    theForm = document.Form;
}
function submitForm() {
    theForm.submit();
}

$(function () {
    $('form').submit(function () {
        alert('ok');
    });
});

重点是,我希望两个按钮都会引起警报,但只有一个按钮会引起警报。我知道我可以提交更改 submitForm 函数以使其正常工作,但我试图找出其中一个有效而另一个无效的区别。

最佳答案

native 表单提交方法绕过 jQuery 提交处理程序。您可以在多种情况下利用这一点。

$("#form").submit(function(e) {
    e.preventDefault();

    // validation
    if (valid(this)) {
        this.submit(); // submit form, bypassing jQuery bound submit handler
    }

});

关于jquery - 为什么不通过表单元素上的 Submit 方法提交表单调用 $.submit 处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12502957/

相关文章:

php - 按钮没有被隐藏

返回未定义的 Javascript 函数类对象

forms - Orbeon Form 支持泰语吗?

javascript - 使用 jQuery 将字段添加到表中的 HTML 表单

javascript - 使用 jquery ajax 加载整个页面

javascript - Javascript 中的这段代码是什么?

javascript - 如何选择只有特定类的元素?

java - 在 HTML 表单中发送 API key

javascript - 如何减少 ExtJS FormPanel 中标签的填充?

Javascript 根据输入重定向表单提交