JavaScript省市级联

     我们在做系统时,很多情况下都需要在页面中嵌套省市级联信息,网上找到的范例大多省市信息不够完整或是级联操作过于复杂。这一篇我也发布一个省市级联示例程序,其中数据文件是借用前人的工作成果(原作者网名为norkts,具体请参见 sitedata.js 文件头部的注释信息)。下面是页面源码:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript" src="jquery-1.8.3.min.js"></script>
   1:  
   2:     <script type="text/javascript" src="sitedata.js">
   1: </script>
   2:     <script type="text/javascript">
   3:         $(document).ready(function () {
   4:             var provinceSelector = $("#provinceSelector");
   5:             var citySelector = $("#citySelector");
   6:             var areaSelector=$("#areaSelector");
   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 = $("#provinceSelector");
  34:             provSelector.empty();
  35:             provSelector.append("<option value=''>--请选择--</option>");
  36:             var arrProvince = provinceInfo;
  37:             for (var provinceIndex in arrProvince) {
  38:                 provSelector.append("<option value='" + arrProvince[provinceIndex]["name"] + "'>" + arrProvince[provinceIndex]["name"] + "</option>")
  39:             }
  40:         }
  41:  
  42:         // 获取指定省份(直辖市)的城市(辖区或县)信息
  43:         function GetCity(provinceName) {
  44:             var citySelector = $("#citySelector");
  45:             var arrCity;
  46:             for (var provinceIndex in provinceInfo) {
  47:                 if (provinceInfo[provinceIndex]["name"] == provinceName) {
  48:                     arrCity = provinceInfo[provinceIndex]["sub"];
  49:                     break;
  50:                 }
  51:             }
  52:             citySelector.empty();
  53:             citySelector.append("<option value=''>--请选择--</option>")
  54:             for (var cityIndex in arrCity) {
  55:                 citySelector.append("<option value='" + arrCity[cityIndex]["name"] + "'>" + arrCity[cityIndex]["name"] + "</option>")
  56:             }
  57:         }
  58:  
  59:         // 获取指定城市(辖区或县)的地区信息
  60:         function GetArea(provinceName, cityName) {
  61:             var areaSelector = $("#areaSelector");
  62:             var arrCity, arrArea;
  63:             for (var provinceIndex in provinceInfo) {
  64:                 if (provinceInfo[provinceIndex]["name"] == provinceName) {
  65:                     arrCity = provinceInfo[provinceIndex]["sub"];
  66:                     for (var cityIndex in arrCity) {
  67:                         if (arrCity[cityIndex]["name"] == cityName) {
  68:                             arrArea = arrCity[cityIndex]["sub"];
  69:                             break;
  70:                         }
  71:                     }
  72:                 }
  73:             }
  74:             areaSelector.empty();
  75:             areaSelector.append("<option value=''>--请选择--</option>")
  76:             for (var areaIndex in arrArea) {
  77:                 areaSelector.append("<option value='" + arrArea[areaIndex]["name"] + "'>" + arrArea[areaIndex]["name"] + "</option>")
  78:             }
  79:         }
  80:     
</ script >
</head>
<body>
<div>
    <select id="provinceSelector"></select>
    <select id="citySelector"></select>
    <select id="areaSelector"></select>
</div>
</body>
</html>

其中 sitedata.js 中的数据采用了JSON格式保存,本人不才,级联操作写得不够优雅,本程序仅作示例,具体操作乡亲们请自行修改(^_^)。

附上源码如下:

文件图标点此下载示例源码

转载于:https://www.cnblogs.com/gb2013/archive/2012/12/08/2808921.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的JavaScript省市级联代码的示例: ```javascript // 省份数据 var provinces = [ { name: "北京市", cities: ["北京市"] }, { name: "上海市", cities: ["上海市"] }, { name: "广东省", cities: ["广州市", "深圳市", "珠海市"] }, // 其他省份数据... ]; // 城市数据 var cities = { "北京市": ["东城区", "西城区", "朝阳区", "海淀区"], "上海市": ["黄浦区", "徐汇区", "静安区", "普陀区"], "广州市": ["天河区", "越秀区", "海珠区", "荔湾区"], "深圳市": ["福田区", "罗湖区", "南山区", "宝安区"], "珠海市": ["香洲区", "斗门区", "金湾区"], // 其他城市数据... }; // 省份下拉框 var provinceSelect = document.getElementById("province"); // 城市下拉框 var citySelect = document.getElementById("city"); // 初始化省份下拉框 for (var i = 0; i < provinces.length; i++) { var option = document.createElement("option"); option.text = provinces[i].name; provinceSelect.add(option); } // 省份下拉框改变事件 provinceSelect.addEventListener("change", function() { // 清空城市下拉框 citySelect.innerHTML = ""; // 获取选中的省份 var selectedProvince = provinceSelect.value; // 根据选中的省份获取对应的城市数据 var selectedCities = cities[selectedProvince]; // 初始化城市下拉框 for (var i = 0; i < selectedCities.length; i++) { var option = document.createElement("option"); option.text = selectedCities[i]; citySelect.add(option); } }); ``` 这段代码实现了一个简单的省市级联功能。当选择省份时,城市下拉框会根据选中的省份动态更新显示对应的城市列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值