當(dāng)前位置:博客首頁>>javacript >> 閱讀正文

form.submit()提交時報錯object is not a function

作者: 鄭曉 分類: javacript 發(fā)布于: 2014-11-04 08:37 瀏覽:12,312 沒有評論


form.submit()提交時報錯object is not a function

在寫表單提交時遇到一個很扯淡的問題,分享一下。

比如有個表單,其中某元素的id為submit,像下面這樣寫:



即,如果在表單某元素中,設(shè)置了一個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é)議進行許可,轉(zhuǎn)載時請注明出處及相應(yīng)鏈接。

本文永久鏈接: http://www.yjfs.org.cn/form-submit-object-is-not-a-function.html

發(fā)表評論

change vcode