Home  >  Q&A  >  body text

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

<input id="submit" ...>

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

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

阿神阿神2772 days ago687

reply all(4)I'll reply

  • 阿神

    阿神2017-04-10 14:40:27

    因为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优先,我就不清楚了。

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 14:40:27

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

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-10 14:40:27

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

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 14:40:27

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

    所以你就坑了……

    reply
    0
  • Cancelreply