首页 > 遇到一个很扯淡的问题,分享一下,顺便求一下原理

遇到一个很扯淡的问题,分享一下,顺便求一下原理

<input id="submit" ...>

如果我设置id为submit的时候,form.submit()时会出现图片中这种问题

其它命名则正确进行。
这是什么原因呢?


因为其实你可以通过 form[elemId] 来访问到表单中的某个加了 id 属性的元素

所以你就坑了……


因为form.submit就是<input id="submit">这个object, 所以error是object is not a function。 可以test一下: console.log(form.submit);

为什么这样呢?
因为form是一个HTMLCollection object, 可以从Interface HTMLDocument了解到。

HTMLCollection object是a list of nodes, 可以通过indexor id or name来引用这些nodes。 Interface HTMLCollection。

最后, 到底为什么是先查询到form.submit接着调用他,比调用form这个object的submitmethod优先,我就不清楚了。


为什么要给submit加ID呢?用form来确定元素就行了呀。


应该是把id命名和submit方法冲突之后,将submit认作处理成id;

【热门文章】
【热门文章】