【问题标题】:TypeError: '[object HTMLInputElement]' is not a function (evaluating 'elem[ type ]()') in jQuery form.submit()TypeError: '[object HTMLInputElement]' 不是 jQuery form.submit() 中的函数(评估 'elem[ type ]()')
【发布时间】:2012-01-30 04:04:29
【问题描述】:

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

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

line 3175

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

谢谢, 杰克

【问题讨论】:

  • 能出示相关代码吗?
  • 看起来您在某处传递了错误的参数。
  • 也许可以试试$(form).submit()
  • 这是您的选择器。 jQuery 对象不同于 DOM 对象。我可以看到您正在尝试将 jquery 函数应用于 DOM 元素。这样做:$(yourelement).submit(... 而不是 yourelement.subimit(...

标签: javascript jquery html forms submit


【解决方案1】:

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

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

在上面的代码中,document.getElementById("frm").submit 代表input 元素。当您将() 应用到submit 时会显示此错误。

【讨论】:

  • 谢谢希普鲁。就是这样。我想我在使用 jQuery 时必须更加小心使用什么名称。
  • @juminoz:那和jQuery无关,是一般的JavaScript/DOM/scope问题。
  • @FelixKling 这可能是真的,但由于我在 1.6.2 版本中没有看到同样的问题,我认为可能发生了一些变化。
  • 这在 jQuery 文档中有所提及,但措辞相当模糊:“名称冲突可能导致令人困惑的失败。”太好了,有像 SO 社区这样的东西,可以为实际问题提供实用的答案。
  • 也为我解决了一些问题。我现在要遵循的好规则是不要使用与输入类型相同的 ID。
【解决方案2】:

我发现当使用onclick属性调用与idid@987654323同名的JavaScript函数时会出现这个错误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! -->

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

【讨论】:

  • 这正是导致我出错的原因。我有一个这样的复选框设置:&lt;input type="checkbox" id="toggleCheck" name="toggleCheck" onClick="toggleCheck();"&gt; 一旦我重命名“名称”和“ID”标签,它就可以正常工作:&lt;input type="checkbox" id="toggleCheckbox" name="toggleCheckbox" onClick="toggleCheck();"&gt;
  • 我花了很长时间才找到您的解决方案,因为没有人用 id 和名称编写真实示例。否则这些人会意识到,匹配的名称会导致此错误。非常感谢!
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 2013-09-09
    • 2022-07-14
    • 2016-05-18
    • 2012-10-06
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多