form.submit()提交時報錯object is not a function
作者: 鄭曉 分類: javacript 發(fā)布于: 2014-11-04 08:37 瀏覽:12,494 沒有評論
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(一個元素節(jié)點列表), 可以通過indexor(索引)、id 或 元素的name來引用這些節(jié)點。
所以,鄭曉覺得,造成最初object is not a function的原因,可能是form.submit的這個節(jié)點元素對象,把form的submit方法覆蓋了。id名和submit方法沖突后,將form.submit認作是操作了id為submit的這個元素。
本文采用知識共享署名-非商業(yè)性使用 3.0 中國大陸許可協(xié)議進行許可,轉載時請注明出處及相應鏈接。
本文永久鏈接: http://yjfs.org.cn/form-submit-object-is-not-a-function.html