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') 来实现,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
<head> <meta http-equiv= "Content-Type" content= "text/html; charset=gb2312" /> <title>无标题文档</title> <script type= "text/javascript" > var provinces = new Array(); provinces[ "湖北" ] = [ "武汉" , "襄阳" , "随州" , "宜昌" , "十堰" ]; provinces[ "四川" ] = [ "成都" , "内江" , "达州" ]; provinces[ "河南" ] =[ "郑州" , "南阳" , "信阳" , "漯河" ]; function changeProvince() { var prov = document.getElementById( "province" ).value; var city =document.getElementById( "city" ); city.options.length =0; for ( var i in provinces[prov]) { city.options.add( new Option(provinces[prov][i],provinces[prov][i])); } } window.onload = function (){ var province = document.getElementById( "province" ); for ( var index in provinces) { //alert(index); province.options.add( new Option(index,index)); } province.fireEvent( "onchange" ); }; </script> </head> <body> 省份:<select id= "province" onchange= "changeProvince()" ></select> 城市:<select id= "city" ></select> </body> </html> |