50

谁能向我解释这个错误是什么意思?对于这方面的任何帮助,我将不胜感激。

<form class="form" id="form" action="/mailer.php" method="post">

我使用的 Jquery 代码就是这个。

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

3 回答 3

140

检查表单以查看是否有一个HTMLInputElementwith id 或 name is submit

这将为 设置一个属性submitHTMLFormElement因此submit无法执行表单元素原型中的函数。

例子:

<form class="form" id="form" action="/mailer.php" method="post">
    ​&lt;input type="button" name="submit" value="go"/>
</form>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

js:

​console.log($("#form")[0].submit)​;​  // will be the button element, not the submit function.

jQuery 的.submit()方法会调用.submit()原始 dom 元素上的 ,所以会发生错误。

于 2012-09-22T05:37:41.227 回答
28

xdazz 很好地解释了这个问题。

您可以使用 HTMLFormElement 的本机提交方法来解决问题:

HTMLFormElement.prototype.submit.call($('#form')[0]);
于 2013-04-05T11:32:26.957 回答
6

如果您有一个名称为 submit 或 id submit 的按钮或输入,我在 IE 中看到了错误。确保您的输入正确命名。这是一篇关于它的文章http://bugs.jquery.com/ticket/1414

于 2012-09-22T05:48:20.090 回答