采用以下代码:
$("#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/