下拉列表三级联动-----三维数组实现

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
<title>用三维数组实现的三级联动下拉列表框</title>
<script language="JavaScript" type="text/javascript">
<!--
//按照省份下拉列表框的顺序定义三维数组,城市与其对应的地区县构成数组的第三维
 var city=[
     [ ["南京","南京1","南京2","南京3","南京4"],
      ["苏州","苏州1","苏州2","苏州3","苏州4"],
      ["南通","南通1","南通2","南通3","南通4"],
      ["常州","常州1","常州2","常州3","常州3"],
    ],
 
    [ ["兰州","兰州1","兰州2","兰州3","兰州4"],
      ["白银","白银1","白银2","白银3","白银4"],
      ["定西","定西1","定西2","定西3","定西4"],
      ["敦煌","敦煌1","敦煌2","敦煌3","敦煌4"],
    ],
 
    [ ["广州","广州1","广州2","广州3","广州4"],
      ["潮阳","潮阳1","潮阳2","潮阳3","潮阳4"],
      ["潮州","潮州1","潮州2","潮州3","潮州4","潮州5"],
      ["澄海","澄海1","澄海2","澄海3","澄海4"],
    ],
 
    [  ["福州","福州1","福州2","福州3","福州4"],
      ["福安","福安1","福安2","福安3","福安4"],
     ["龙岩","龙岩1","龙岩2","龙岩3","龙岩4"],
     ["南平","南平1","南平2","南平3","南平4"],
    ]
 ];
 
 //省会列表框的列表项改变触发的事件函数
 function getCity(){
  // 获得省会、城市、地区县三个下拉列表框数组
  var provinceoptions = document.forms["theForm"].elements["province"];
  var cityoptions = document.forms["theForm"].elements["city"];
  var xianoptions = document.forms["theForm"].elements["xian"];   
   //清空上一次的设置
   cityoptions.length = 1;
   xianoptions.length = 1;
   //如果省会列表框选择的不是“请选择“项,创建下拉列表
   if(provinceoptions.selectedIndex !=0) {
  
    //从数组中获得选中的省会列表项所对应的城市和地区县的二维数组
    var citys = city[provinceoptions.selectedIndex-1];
   //循环遍历二维数组
   for(var i=0;i<citys.length;i++) {
    //循环设置城市列表框的列表项
     cityoptions[i+1] = new Option(citys[i][0],citys[i][0]);
    //设置默认显示的城市列表项及其对应的第一个地区县
    if(i==0) {
     //循环设置默认显示的城市所对应的所有地区县到地区县列表框
     for(var j=0;j<citys[0].length-1;j++) {
      xianoptions[j+1] = new Option(citys[0][j+1],citys[0][j+1]);
     }
     //设置默认显示的城市列表项及其对应的第一个地区县    
     cityoptions.selectedIndex = 1;
     xianoptions.selectedIndex = 1;
    }
    }
   }   
 }
 
 //城市列表框的列表项改变触发的事件函数
 function getXian(){
  // 获得省会、城市、地区县三个下拉列表框数组
   var provinceoptions = document.forms["theForm"].elements["province"];
   var cityoptions = document.forms["theForm"].elements["city"];
   var xianoptions = document.forms["theForm"].elements["xian"];
   //清空上一次的设置
   xianoptions.length = 1;
    //如果城市列表框选择的不是“请选择“项,创建地区县
   if(cityoptions.selectedIndex != 0) {  
    //从数组中获得选中的省会列表项所对应的地区县的一维数组
    var xians = city[provinceoptions.selectedIndex-1][cityoptions.selectedIndex-1];
   //循环遍历一维数组
   for(var i=1;i<xians.length;i++) {
    //循环设置城市列表框的列表项
     xianoptions[i] = new Option(xians[i],xians[i]);
    //设置默认显示的地区县 
    xianoptions.selectedIndex = 1;
    }
   }
 }
 
//-->
</script>
</head>
<body>

<form action="somepage.asp" name="theForm">
    <select name="province" οnchange="getCity()">
        <option value="0">请选择所在省份</option>
        <option value="江苏省">江苏省</option>
        <option value="福建省">甘肃省</option>
        <option value="广东省">广东省</option>
        <option value="甘肃省">福建省</option>
    </select>
    <select name="city" οnchange="getXian()">
        <option value="0">请选择所在城市</option>
    </select>
    <select name="xian">
        <option value="0">请选择所县</option>
    </select>
</form>
</body>
</html>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值