对象#<HTMLFormElement>的属性'提交'不是一个函数
任何人都可以向我解释这个错误是什么意思? 我会很感激任何帮助。
<form class="form" id="form" action="/mailer.php" method="post">
我使用的Jquery代码是这样的。
$('#form').submit();
检查表单以查看是否存在具有id或name的HTMLInputElement
submit
。
这将设置属性submit
给HTMLFormElement
,所以在表单元素的原型中的submit
function不能被执行。
例:
<form class="form" id="form" action="/mailer.php" method="post"> <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()
方法将调用原始dom元素上的.submit()
,所以会发生错误。
xdazz很好地解释了这个问题。
您可以使用HTMLFormElement的本地提交方法来解决问题:
HTMLFormElement.prototype.submit.call($('#form')[0]);
如果你有一个button或input名称提交或ID提交,我已经看到在IE中的错误。 确保您的input正确命名。 这里有一篇关于它的文章http://bugs.jquery.com/ticket/1414