我有这个simple html标记:

<form id="form" action="lalala">
  <input type="text" id="action"/>  //a reserved property name id
  <input type="submit" id="submit"/> //same here
</form>

但是-正在运行:
alert(document.getElementById('form').action);
警报

而不是应有的“拉拉拉”。

似乎getElementById的 Prop 无法直接访问

这是为什么 ? .....实际上,这意味着我必须了解所有form元素的 Prop (以便不向后代元素提供保留的 Prop ID)?

最佳答案

这与getElementById无关,与HTML表单元素对象的属性无关。



它不是“保留”的,只是默认情况下定义了一个值

如果您在表单中有一个表单控件,并且该控件的ID(或名称)与表单元素具有的属性相匹配,则对该表单控件的引用将覆盖该属性的常规值。



http://www.w3.org/TR/html5/forms.html#the-form-element

这很糟糕,但是自从出现这种情况以来,表单的DOM便一直有效。

由于该特定属性映射到属性值,因此可以使用getAttributesetAttribute来操纵它。 (这在旧版IE中不起作用(该旧版IE对在属性上运行的方法进行了错误的实现),在某些其他属性(例如Submit方法)下也无效。)



是。

10-06 08:06
查看更多