javascript - 将提交处理程序绑定(bind)到 jQuery 1.7.1 中的表单返回错误

标签 javascript jquery

采用以下代码:

$("#docUploadForm").on("submit", function(event) {
    event.preventDefault();
});

到目前为止很简单,对吧?绑定(bind)在 init() 中触发在 $(document).ready() 上被触发的方法.

Chrome 在绑定(bind)提交的行上提示: Uncaught TypeError: Object #<HTMLInputElement> has no method 'toLowerCase'

抛出的错误来自 jQuery 核心。如果有人好奇,相关调用位于 jquery-1.7.1.js 中的第 1853 行:var match = jQuery.noData[ elem.nodeName.toLowerCase() ];

那么,我需要做什么来解决这个问题?

Firefox 9 中的 Firebug 提示同样的问题。所以这不是浏览器实现问题。

最佳答案

发现问题。

这适用于使用 Java 内容存储库的内部网络应用程序。在 JCR 中,对象称为节点,因此我们使用节点名称来引用对象。

在我的表单中,我有一个 ID 为 nodeName 的隐藏输入,这显然导致了与 jQuery 的冲突。 jQuery 中出错的行是调用 elem.nodeName,它返回隐藏的输入而不是它期望的 DOM 节点的名称。

吸取教训:不要给表单元素一个 id 为“nodeName”的 id,jQuery 不喜欢它。

参见 this Fiddle用于演示。

关于javascript - 将提交处理程序绑定(bind)到 jQuery 1.7.1 中的表单返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9474482/

相关文章:

jquery - 带有/Jquery UI Accordion 的可扩展表行

javascript - 在 HTML 页面或 WordPress 编辑器中突出显示不间断空格

javascript - 从 html 表加载时出现可编辑网格错误

javascript - 点击功能在此代码中不起作用

javascript - 单击事件在 JavaScript 中不起作用

javascript - 对象数组中数组中的特定元素

javascript - 正则表达式删除🔜等

javascript - 如何在ReactJS钩子(Hook)中使用箭头函数传递参数

javascript - 使用下拉菜单选择在不同的 Google 图表之间进行更改

javascript - jquery 展开/折叠所有元素