表单元素ID作为IE11中的全局变量

时间:2018-08-26 09:53:59

标签: html dom

您知道为什么在IE11中为什么不将“ foo”设置为“ window”的属性吗?

<form>
    <input id=foo>
</form>

..而在以下示例中是?

<form>
    <div id=foo></div>
</form>

<div>
    <input id=foo>
</div>

1 个答案:

答案 0 :(得分:0)

特别是对于FORM元素内部的INPUTS,IE出于某种原因只是不使它们在全球范围内可用,这并不是什么新鲜事物,我可以在IE6之前跟踪这种行为。

但是实际上,IE要做的是使它们可以从表单本身进行访问,所以,如果您有:

<form action="/test" id="myForm">
  <input type="text" id="myField" value="initial value" />
  <div id="other">initial content</div>
</form>

您可以通过其ID访问DIV,但是INPUT仅调用myForm.myField,因此可以正常工作(在所有能够测试它的浏览器中,包括IE6和IE11):

other.innerHTML      = "Potato!!!";
myForm.myField.value = 'Potato!!!';