select 或text的onchange事件需要手动(通过键盘输入)改变select或text的值才能触发,如果在js中给select或text赋值,则无法触发onchang事件,
例如,在页面加载完成以后,需要触发一个onChange事件,在js中用document.getElementById("se").value="ttt";直接给select或text赋值是不行的,要想实现手动触发onchange事件,需要在js给select赋值后,加入下面的语句,(假设select的id为sel)
document.getElementById("sel").fireEvent('onchange') 来实现,
例子:
<html><body>
<select id="sel" name="test" onchange="demo()">
<option value="1" selected>测试一</option>
<option value="2">测试二</option>
<option value="3">测试三</option>
<option value="4">测试四</option>
</select>
<input id="tex" type="text" name="text1" id="text1">
<script>
document.getElementById("sel").value="3";
document.getElementById("sel").fireEvent("onchange");
function demo()
{
var d=document.getElementById("sel").value;
document.getElementById("tex").value=d;
//alert(d);
}
</script>
</body></html>
上面的代码产生的效果就相当于鼠标在select元素上进行了选择,模仿出了select的onchange效果