JavaScript省市级联
<div id="cnblogs_post_body"> 我们在做系统时,很多情况下都需要在页面中嵌套省市级联信息,网上找到的范例大多省市信息不够完整或是级联操作过于复杂。这一篇我也发布一个省市级联示例程序,其中数据文件是借用前人的工作成果(原作者网名为norkts,具体请参见 sitedata.js 文件头部的注释信息)。下面是页面源码:<div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; height: 272px; font-family: &#39;Courier New&#39;, courier, monospace; border-right: silver 1px solid; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; width: 97.28%; background-color: #f4f4f4"> <div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"> <!DOCTYPE html> <html> <head> <title></title> <script type=&quot;text/javascript&quot; src=&quot;jquery-1.8.3.min.js&quot;></script> 1: 2: <script type=&quot;text/javascript&quot; src=&quot;sitedata.js&quot;> 1: </script> 2: <script type=&quot;text/javascript&quot;> 3: $(document).ready(function () { 4: var provinceSelector = $(&quot;#provinceSelector&quot;); 5: var citySelector = $(&quot;#citySelector&quot;); 6: var areaSelector=$(&quot;#areaSelector&quot;); 7: GetProvince(); 8: provinceSelector.change(function () { 9: var provinceName = provinceSelector.val();10: if (provinceName != '') {11: GetCity(provinceName);12: areaSelector.empty();13: }14: else{15: citySelector.empty();16: areaSelector.empty();17: }18: });19: citySelector.change(function () {20: var provinceName = provinceSelector.val();21: var cityName = citySelector.val();22: if(cityName!=''){23: GetArea(provinceName, cityName);24: }25: else{26: areaSelector.empty();27: }28: });29: });30: 31: // 获取省份(直辖市)信息32: function GetProvince() {33: var provSelector = $(&quot;#provinceSelector&quot;);34: provSelector.empty();35: provSelector.append(&quot;<option value=''>--请选择--</option>&quot;);36: var arrProvince = provinceInfo;37: for (var provinceIndex in arrProvince) {38: provSelector.append(&quot;<option value='&quot; + arrProvince[&quot;name&quot;] + &quot;'>&quot; + arrProvince[&quot;name&quot;] + &quot;</option>&quot;)39: }40: }41: 42: // 获取指定省份(直辖市)的城市(辖区或县)信息43: function GetCity(provinceName) {44: var citySelector = $(&quot;#citySelector&quot;);45: var arrCity;46: for (var provinceIndex in provinceInfo) {47: if (provinceInfo[&quot;name&quot;] == provinceName) {48: arrCity = provinceInfo[&quot;sub&quot;];49: break;50: }51: }52: citySelector.empty();53: citySelector.append(&quot;<option value=''>--请选择--</option>&quot;)54: for (var cityIndex in arrCity) {55: citySelector.append(&quot;<option value='&quot; + arrCity[&quot;name&quot;] + &quot;'>&quot; + arrCity[&quot;name&quot;] + &quot;</option>&quot;)56: }57: }58: 59: // 获取指定城市(辖区或县)的地区信息60: function GetArea(provinceName, cityName) {61: var areaSelector = $(&quot;#areaSelector&quot;);62: var arrCity, arrArea;63: for (var provinceIndex in provinceInfo) {64: if (provinceInfo[&quot;name&quot;] == provinceName) {65: arrCity = provinceInfo[&quot;sub&quot;];66: for (var cityIndex in arrCity) {67: if (arrCity[&quot;name&quot;] == cityName) {68: arrArea = arrCity[&quot;sub&quot;];69: break;70: }71: }72: }73: }74: areaSelector.empty();75: areaSelector.append(&quot;<option value=''>--请选择--</option>&quot;)76: for (var areaIndex in arrArea) {77: areaSelector.append(&quot;<option value='&quot; + arrArea[&quot;name&quot;] + &quot;'>&quot; + arrArea[&quot;name&quot;] + &quot;</option>&quot;)78: }79: }80: </script> </head> <body> <div> <select id=&quot;provinceSelector&quot;></select> <select id=&quot;citySelector&quot;></select> <select id=&quot;areaSelector&quot;></select> </div> </body> </html>
页:
[1]