<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, 可以通过index
or id
or name
来引用这些nodes。 Interface HTMLCollection。
最后, 到底为什么是先查询到form.submit
接着调用他,比调用form
这个object的submit
method优先,我就不清楚了。
为什么要给submit加ID呢?用form来确定元素就行了呀。
应该是把id命名和submit方法冲突之后,将submit认作处理成id;