form.submit()提交时报错object is not a function
作者: 郑晓 分类: javacript 发布于: 2014-11-04 08:37 浏览:12,439 没有评论
form.submit()提交时报错object is not a function
在写表单提交时遇到一个很扯淡的问题,分享一下。
比如有个表单,其中某元素的id为submit,像下面这样写:
即,如果在表单某元素中,设置了一个id名为submit的元素, 然后在使用form.submit()进行提交表单时, 表单无动作,浏览器控制台中会提示一个js错误:
Uncaught TypeError: object is not a function
如果使用其它的id就正常了。
分析原因:
因为form.submit其实就是选中了这个对象(object), 所以会提示错误object is not a function。 可以在控制台中打印一下: console.log(form.submit);。
为什么这样呢?
因为form是一个HTMLCollection object, 可以从Interface HTMLDocument了解到。
而HTMLCollection object是a list of nodes(一个元素节点列表), 可以通过indexor(索引)、id 或 元素的name来引用这些节点。
所以,郑晓觉得,造成最初object is not a function的原因,可能是form.submit的这个节点元素对象,把form的submit方法覆盖了。id名和submit方法冲突后,将form.submit认作是操作了id为submit的这个元素。
本文采用知识共享署名-非商业性使用 3.0 中国大陆许可协议进行许可,转载时请注明出处及相应链接。
本文永久链接: https://www.zh30.com/form-submit-object-is-not-a-function.html