TypeError:'[object HTMLInputElement]'不是jQuery form.submit()中的函数(评估'elem [type]()')

jum*_*noz 12 html javascript forms jquery submit

从来没有遇到过这个问题?我在最新版本的jQuery中遇到此错误.我试过版本1.6.2并没有问题.

TypeError: '[object HTMLInputElement]' is not a function (evaluating 'elem[ type ]()')

line 3175
Run Code Online (Sandbox Code Playgroud)

有什么改变我们应该知道吗?

谢谢,杰克

Shi*_*dim 37

如果您input的任何标签名称是,通常会发生这种情况submit.例如,

<form id="frm">
    <input type="submit" name="submit" value="Post" />
</form>
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,document.getElementById("frm").submit表示input元素.申请()submit显示此错误.

  • 这在jQuery文档中有提及,但措辞相当模糊:"名称冲突可能导致令人困惑的失败." 这样的好事就像SO社区一样,可以解决实际问题. (4认同)
  • @juminoz:这与jQuery无关,它是一般的JavaScript/DOM /范围问题. (3认同)

Pet*_*uck 7

我发现,使用时会出现此错误onclick属性来访问具有相同名称的JavaScript函数为任意id 或者 name一个属性上的input元素:

<input id='foo' name='fooName' onclick='foo();'> <!-- BAD: id matches function -->

<input id='fooId' name='foo' onclick='foo();'> <!-- BAD: name matches function -->

<input id='fooId' name='fooName' onclick='foo();'> <!-- WORKS! -->
Run Code Online (Sandbox Code Playgroud)

无论输入类型如何,都会发生此行为.