忽然发现该问题,记录一下。先看初始代码
html:
<form name="myform">
<select name="a" onchange=fun()>
<option value="zs">张三</option>
<option value="ls">李四</option>
<option value="ww">王五</option>
<option value="zp">周平</option>
</select>
</form>
js:
<script>
function fun(){
var x = document.myform.a; //注意这个a是个对象
alert(x.options[x.selectedIndex].value);
}
</script>
修改后的html
<form name="myform">
<select name="a" onchange=fun()>
<option value="zs">张三</option>
<option value="ls">李四</option>
<option value="ww">王五</option>
<option value="zp">周平</option>
</select>
<input name="a">这里多加了一个同名的元素
</form>
js代码;
<script>
function fun(){
var x = document.myform.a[0]; //这里就是a的集合,必须要用索引选出指定项
alert(x.options[x.selectedIndex].value);
}
</script>
此外还有select中this的指代
html1
<form name="myform">
<select name="a" onchange=fun(this)> 该this指代这个select元素,由于select的value就是选中项的value,这种方式能更快得到结果,但是this其实指代的还是select,所以它的innerHTML还是包含了所有的option和内容
<option value="zs">张三</option>
<option value="ls">李四</option>
<option value="ww">王五</option>
<option value="zp">周平</option>
</select>
<input name="a">
</form>