js下拉列表框的联动事件

对二维数组的实际应用

< html >
< head >
     < title ></ title >
     < script language = "javascript" type = "text/javascript" >
         //定义 城市 数据数组
         cityArray = new Array();
         cityArray[0] = new Array("河南省","郑州市|开封市|洛阳市|平顶山市|安阳市|鹤壁市|新乡市|焦作市|濮阳市|许昌市|漯河市|三门峡市|南阳市|商丘市|信阳市|周口市|驻马店市|济源市");
         cityArray[1] = new Array("云南省","昆明市|大理市|曲靖市|玉溪市|昭通市|楚雄市|红河市|文山市|思茅市|西双版纳市|保山市|德宏市|丽江市|怒江市|迪庆市|临沧市");
         cityArray[2] = new Array("其它","其它");   
 
         function getCity(currProvince)
         {
             //当前 所选择 的 省
             var currProvince = currProvince;
             var i,j,k;
             //清空 城市 下拉选单
             document.all.selCity.length = 0 ;
             for (i = 0 ;i < cityArray.length ;i++)
               {  
                   //得到 当前省 在 城市数组中的位置
                   if(cityArray[i][0]==currProvince)
                     {  
                         //得到 当前省 所辖制的 地市
                         tmpcityArray = cityArray[i][1].split("|")
                           for( j = 0 ;j<tmpcityArray.length;j++)
                           {
                             //填充 城市 下拉选单
                             document.all.selCity.options[document.all.selCity.length] = new Option(tmpcityArray[j],tmpcityArray[j]);
                           }
                     }
               }
         }
     </script>
</ head >
< body >
< form id = "form1" >
     < select id = "selProvince" onChange = "getCity(this.options[this.selectedIndex].value)" >
         < option value = "" >-请选择-</ option >
         < option value = "河南省" >河南省</ option >
         < option value = "云南省" >云南省</ option >
         < option value = "其它" >其它</ option >
     </ select >
 
     < select id = "selCity" >
         < option >-城市-</ option >
     </ select >
</ form >
</ body >
</ html >
在JavaScript中实现下拉列表的三级联动,可以通过以下步骤来完成: 1. HTML结构:首先,在HTML中创建三个下拉列表,分别表示三个级别的选项。例如: ```html <select id="province"> <option value="">请选择省份</option> <!--省份选项--> </select> <select id="city"> <option value="">请选择城市</option> <!--城市选项--> </select> <select id="district"> <option value="">请选择区县</option> <!--区县选项--> </select> ``` 2. 数据准备:准备好省份、城市和区县的数据,可以使用数组或者JSON对象来存储。例如: ```javascript var provinceData = [ { name: "北京", cities: ["北京市"] }, { name: "上海", cities: ["上海市"] }, //其他省份及其城市数据 ]; var cityData = [ { name: "北京市", districts: ["东城区", "西城区", "朝阳区", "海淀区"] }, { name: "上海市", districts: ["黄浦区", "徐汇区", "静安区", "杨浦区"] }, //其他城市及其区县数据 ]; var districtData = [ { name: "东城区" }, { name: "西城区" }, { name: "朝阳区" }, { name: "海淀区" }, //其他区县数据 ]; ``` 3. 动态加载选项:使用JavaScript动态加载选项,根据用户选择的省份和城市来更新城市和区县的选项。例如: ```javascript var provinceSelect = document.getElementById("province"); var citySelect = document.getElementById("city"); var districtSelect = document.getElementById("district"); // 省份选项改变触发事件 provinceSelect.addEventListener("change", function() { var selectedProvince = provinceSelect.value; updateCityOptions(selectedProvince); }); // 城市选项改变触发事件 citySelect.addEventListener("change", function() { var selectedCity = citySelect.value; updateDistrictOptions(selectedCity); }); // 更新城市选项 function updateCityOptions(selectedProvince) { // 清空城市选项 citySelect.innerHTML = "<option value=''>请选择城市</option>"; // 查找对应省份的城市数据 var cities = cityData.find(function(item) { return item.name === selectedProvince; }).cities; // 动态添加城市选项 cities.forEach(function(city) { var option = document.createElement("option"); option.value = city; option.textContent = city; citySelect.appendChild(option); }); // 更新区县选项 updateDistrictOptions(""); } // 更新区县选项 function updateDistrictOptions(selectedCity) { // 清空区县选项 districtSelect.innerHTML = "<option value=''>请选择区县</option>"; // 查找对应城市的区县数据 var districts = districtData.find(function(item) { return item.name === selectedCity; }).districts; // 动态添加区县选项 districts.forEach(function(district) { var option = document.createElement("option"); option.value = district; option.textContent = district; districtSelect.appendChild(option); }); } // 初始化省份选项 provinceData.forEach(function(province) { var option = document.createElement("option"); option.value = province.name; option.textContent = province.name; provinceSelect.appendChild(option); }); ``` 这样,当用户选择省份,城市选项会根据选择的省份进行更新;当用户选择城市,区县选项会根据选择的城市进行更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值