Javascript 类型错误:';[对象HTMLInputElement]';不是jQuery form.submit()中的函数(计算元素[type]()';)

Javascript 类型错误:';[对象HTMLInputElement]';不是jQuery form.submit()中的函数(计算元素[type]()';),javascript,jquery,html,forms,submit,Javascript,Jquery,Html,Forms,Submit,从来没有遇到过这个问题?我在jQuery的最新版本中发现了这个错误。我试过1.6.2版,没有问题 TypeError: '[object HTMLInputElement]' is not a function (evaluating 'elem[ type ]()') line 3175 有什么我们应该注意的变化吗 谢谢, 杰克如果您的输入标签的名称是submit,通常会发生这种情况。 比如说, <form id="frm"> <input type="submi

从来没有遇到过这个问题?我在jQuery的最新版本中发现了这个错误。我试过1.6.2版,没有问题

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

line 3175
有什么我们应该注意的变化吗

谢谢,
杰克

如果您的
输入
标签的名称是
submit
,通常会发生这种情况。 比如说,

<form id="frm">
    <input type="submit" name="submit" value="Post" />
</form>


在上面的代码中,
document.getElementById(“frm”).submit
表示
输入
元素。当您将
()
应用于
提交时,它会显示此错误。

我最近在safari提交表单时遇到了一个类似的问题。原来是由于提交输入元素具有
name=“submit”
,这是一个冲突,导致它返回它不是一个函数。

我发现,当使用
onclick
属性调用与
输入
元素上的
id
name
属性同名的JavaScript函数时,会发生此错误:

<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! -->


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

您能显示相关代码吗?看起来更像是您在某处传递了错误的参数。请尝试
$(form).submit()
。这是您的选择器。jQuery对象与DOM对象不同。我可以看到您正在尝试将jquery函数应用于DOM元素。执行此操作:
$(yourelement)。提交(…
而不是
yourelement.subimit(…
谢谢Shiplu。就是这样。我想在使用jQuery时,我必须更加小心使用什么名称。@juminoz:这与jQuery无关,这是一个一般的JavaScript/DOM/scope问题。@FelixKling可能是这样,但因为我在1.6.2版中没有看到同样的问题,所以我认为可能发生了一些变化。这在jQuery文档,但措辞相当模糊:“名称冲突可能会导致混乱的失败。”所以,很好的一点是,像So社区这样的社区可以为实际问题提供实用的答案。我也解决了一些问题。我现在要遵循的好规则是,不要使用与输入类型相同的ID。这正是导致错误的原因对我来说,我有一个复选框设置:
一旦我重新命名了“name”和“id”标签,它就正常工作了:
花了我很长时间才找到你的解决方案,因为没有人用id和name编写真实的示例。否则,这些人会意识到,匹配的名称会导致这个错误。非常感谢!