js实现二级联动菜单

下面是一段js实现二级联动菜单的代码,供初学者使用。文件名:index.html,代码如下
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>无标题文档</title>
  6. <script type="text/javascript">
  7. var arr_province = ["请选择省/城市","北京市","上海市","天津市","重庆市","深圳市","广东省"];
  8. var arr_city = [
  9.                 ["请选择城市/地区"],
  10.                 ["东城区","西城区","朝阳区","宣武区","昌平区","大兴区","丰台区","海淀区"],
  11.                 ['宝山区','长宁区','丰贤区', '虹口区','黄浦区','青浦区','南汇区','徐汇区','卢湾区'],
  12.                 ['和平区', '河西区', '南开区', '河北区', '河东区', '红桥区', '塘古区', '开发区'],
  13.                 ['俞中区', '南岸区', '江北区', '沙坪坝区', '九龙坡区', '渝北区', '大渡口区', '北碚区'],
  14.                 ['福田区', '罗湖区', '盐田区', '宝安区', '龙岗区', '南山区', '深圳周边'],
  15.                 ['广州市','惠州市','汕头市','珠海市','佛山市','中山市','东莞市']
  16.             ];
  17. //网页加载完成,初始化二级菜单
  18. window.onload = init; //传地址,不带括号
  19. function init()
  20. {
  21.     //获取name=provincename=city的对象
  22.     var province = document.form1.province;
  23.     var city = document.form1.city;
  24.     //指定省份下拉中<option>标记的个数
  25.     province.length = arr_province.length;
  26.     //循环将arr_province中的数据写入到<option>标记中
  27.     for(var i=0;i<arr_province.length;i++)
  28.     {
  29.         province.options[i].text = arr_province[i];
  30.         province.options[i].value = arr_province[i];
  31.     }
  32.     //修改省份列表中默认选择项
  33.     var index = 0;
  34.     province.selectedIndex = index;
  35.     //指定城市下拉中<option>标记的个数
  36.     city.length = arr_city[index].length;
  37.     //循环将arr_city中对应的数据写入到<option>标记中
  38.     for(var j=0;j<arr_city[index].length;j++)
  39.     {
  40.         city.options[j].text = arr_city[index][j];
  41.         city.options[j].value = arr_city[index][j];
  42.     }
  43. }
  44. function changeSelect(index)
  45. {
  46.     //获取name=city的对象
  47.     var city = document.form1.city;
  48.     //指定城市下拉中<option>标记的个数
  49.     city.length = arr_city[index].length;
  50.     //循环将arr_city中对应的数据写入到<option>标记中
  51.     for(var j=0;j<arr_city[index].length;j++)
  52.     {
  53.         city.options[j].text = arr_city[index][j];
  54.         city.options[j].value = arr_city[index][j];
  55.     }
  56. }
  57. </script>
  58. </head>
  59. <body>
  60. <form name="form1" method="post" action="login.php">
  61. 省份:<select name="province" onchange="changeSelect(this.selectedIndex)"></select>
  62. 城市:<select name="city"></select>
  63. </form>
  64. </body>
  65. </html>

发表评论

目前评论:1