获取Internet Explorer中SELECT框的值

bmw*_*128 14 html javascript internet-explorer

我有一个选择框:

<select id="item1" name="Item 1">
  <option> </option>
  <option> Camera </option>
  <option> Microphone </option>
  <option> Tripod </option>
</select>
Run Code Online (Sandbox Code Playgroud)

我有这个JavaScript:

var item1= document.getElementById("item1").value;
Run Code Online (Sandbox Code Playgroud)

item1始终显示为空,从不选择选项.但是,这适用于.

Gre*_*reg 23

使用item.value适用于除非常旧的浏览器之外的所有浏览器(Netscape 4任何人?).它在这种情况下不起作用的原因是因为选项中没有值属性.您应该为每个属性声明值.您目前拥有的只是"text"属性,通常在没有声明值时默认为value.或者,您可以在窗口onload事件中推送一些代码,使每个选项的"值"与"text"相同.

第三种方法,你可以使用下面的代码,这是老式的方式:

var s = document.getElementById('item1');
var item1 = s.options[s.selectedIndex].value;
Run Code Online (Sandbox Code Playgroud)

  • Greg,@ Marco Z的答案(使用`.text`而不是`.value`)在IE7上为我工作.也许更新答案,或解释为什么不呢? (4认同)

Mar*_*o Z 14

由于您的选项标签没有属性"value",因此IE6和IE7会返回一个空字符串.您应该从Option对象的"text"字段中读取值,如下所示:

var item1 = s.options[s.selectedIndex].text;
Run Code Online (Sandbox Code Playgroud)

在item1中,您将拥有所需的价值而不会破坏与Firefox和IE 8的兼容性.