js触发select onchange事件的小技巧
select或text的onchange事件需要手动(通过键盘输入)改变select或text的值才能触发,如果在js中给select或text赋值,则无法触发onchang事件,
例如,在页面加载完成以后,需要触发一个onChange事件,在js中用document.getElementById("province").value="湖北";直接给select或text赋值是不行的,要想实现手动触发onchange事件,需要在js给select赋值后,加入下面的语句
document.getElementById("province").fireEvent('onchange')来实现,
<head> <metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/> <title>无标题文档</title> <scripttype="text/javascript"> varprovinces=newArray(); provinces["湖北"]=["武汉","襄阳","随州","宜昌","十堰"]; provinces["四川"]=["成都","内江","达州"]; provinces["河南"]=["郑州","南阳","信阳","漯河"]; functionchangeProvince() { varprov=document.getElementById("province").value; varcity=document.getElementById("city"); city.options.length=0; for(variinprovinces[prov]) { city.options.add(newOption(provinces[prov][i],provinces[prov][i])); } } window.onload=function(){ varprovince=document.getElementById("province"); for(varindexinprovinces) { //alert(index); province.options.add(newOption(index,index)); } province.fireEvent("onchange"); }; </script> </head> <body> 省份:<selectid="province"onchange="changeProvince()"></select> 城市:<selectid="city"></select> </body> </html>