JS 实现地区,省份,城市,县区4级联动
刚学JS,实战一下,做一个省份信息4级联动。
但是网上查了都是3级的,没有4级,现在做一个的是带地区的4级联动,最简单的办法是修改别人的代码,最开始找到的事类似于下边这个的:
省市县关联菜单 <html> <head> <title>省市县关联菜单</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <SCRIPT LANGUAGE="JavaScript"> <!-- function Dsy() { this.Items = {}; } Dsy.prototype.add = function(id,iArray) { this.Items[id] = iArray; } Dsy.prototype.Exists = function(id) { if(typeof this.Items[id] == "undefined") return false; return true; } function change(v){ var str="0"; for(i=0;i<v;i++) { str+=("_"+(document.getElementById(s[i]).selectedIndex-1)); } var ss=document.getElementById(s[v]); with(ss){ length = 0; options[0]=new Option(opt0[v],opt0[v]); if(v && document.getElementById(s[v-1]).selectedIndex>0 || !v) { if(dsy.Exists(str)) { ar = dsy.Items[str]; for(i=0;i<ar.length;i++) options[length]=new Option(ar[i],ar[i]); if(v) options[1].selected = true; } } if(++v<s.length) { change(v); } } } var dsy = new Dsy(); { dsy.add("0",["华东地区","华南地区","华中地区","华北地区","西北地区","西南地区","东北地区","台港澳地区"]); dsy.add("0_0",["山东","江苏","安徽","浙江","福建","上海"]); dsy.add("0_0_0",["滨州","德州","东营","菏泽","济南","济宁","莱芜","聊城","临沂","青岛","日照","泰安","威海","潍坊","烟台","枣庄","淄博"]); dsy.add("0_0_0_0",["滨州市","博兴县","惠民县","无棣县","阳信县","沾化县","邹平县"]); dsy.add("0_0_0_1",["德州市","乐陵市","临邑县","陵县","宁津县","平原县","齐河县","庆云县","武城县","夏津县","禹城市"]); dsy.add("0_0_0_2",["东营市","广饶县","垦利县","利津县"]); dsy.add("0_0 ......省略掉数据(要不太多了) } //--> </SCRIPT> <SCRIPT LANGUAGE = JavaScript> <!-- //** Power by Fason(2004-3-11) //** Email:fason_pfx@hotmail.com var s=["s0","s1","s2","s3"]; var opt0 = ["地区","省份","地级市","市、县级市、县"]; function setup() { for(i=0;i<s.length-1;i++) document.getElementById(s[i]).onchange=new Function("change("+(i+1)+")"); change(0); } //--> </SCRIPT> </head> <body onload="setup()"> 多级关联菜单: <form name="frm"> <select id="s0"><option>地区</option></select> <select id="s1"><option>省份</option></select> <select id="s2"><option>地级市</option></select> <select id="s3"><option>市、县级市、县</option></select> </form> </body> </html>
虽然原理是看懂了,修改为4级地区联动发现数据有问题,只有县级,连区没有。好吧,这个是在百度文库里找的,标题是最详细的省市县3级联动。。。然后,改完之后发现被坑了。没办法啊,重新找吧,然后就找到了还算是基本比较全的数据,然后就开始改了:
下面这个是按照地域划分的区所做的4级联动修改:
HTML代码如下:
<!DOCTYPE html> <html> <head> <title>纯JS省市区联动</title> <script type="text/javascript" src="jsAddress.js"></script> </head> <body> <div> 地区:<select id="area"></select> 省:<select id="cmbProvince"></select> 市:<select id="cmbCity"></select> 区:<select id="cmbArea"></select> <br /><br /> <script type="text/javascript"> addressInit('area','cmbProvince','cmbCity','cmbArea','西北地区', '北京', '市辖区', '东城区'); //addressInit('Select1', 'Select2', 'Select3'); </script> </div> </body> </html>
补充:web前端 , JavaScript ,