2011-12-29 32 views
12

从来没有遇到过这个问题?我在最新版本的jQuery中遇到了这个错误。我试过版本1.6.2,没有问题。TypeError:'[object HTMLInputElement]'不是jQuery中的函数(评估'elem [type]()')form.submit()

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

line 3175 

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

感谢, 杰克

+6

你能显示相关的代码吗? – 2011-12-29 20:18:11

+0

看起来更像是你在某处传递错误的论点。 – 2011-12-29 20:21:56

+0

也许试试'''$(form).submit()'''。 – 2011-12-29 20:29:53

回答

37

这通常发生在您的任何input标签的名字是submit。 例如,

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

在上面的代码,document.getElementById("frm").submit表示input元件。当你申请()submit它显示这个错误。

+0

感谢Shiplu。就是这样。我想我必须更小心使用jQuery时使用的名称。 – juminoz 2011-12-29 21:20:19

+3

@juminoz:这与jQuery无关,它是一个通用的JavaScript/DOM /范围问题。 – 2011-12-29 21:55:41

+0

@FelixKling这可能是真的,但由于我在1.6.2版中没有看到相同的问题,我认为某些东西 – juminoz 2011-12-29 23:04:30

3

我最近有一个类似的问题,Safari浏览器提交了一个表单。原因是提交input元素的name="submit",这是冲突导致它返回它作为一个函数。

7

我发现,使用onclick属性来访问具有相同名称的JavaScript函数,如要么input元素的idname属性时,会出现此错误:

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

这行为发生与输入类型无关。

+0

这正是导致我错误的原因。我有一个复选框设置为: '' 一旦我重命名“名称” “id”标签: '' – 2015-01-28 15:30:18

+0

同样的问题在这里,谢谢指出冲突。 – tangent 2015-04-20 21:59:05

+0

花了我很多时间找到你的解决方案,因为没有人用ID和名字写了一个真实的例子..否则这些人会意识到,匹配的名称会导致这个错误。非常感谢! – Rikco 2017-04-26 17:26:52

相关问题