原文地址为: 中国省份城市级联选择--JavaScript

前一段做了一个小程序居然都用到列表框选择城市,一直都是在里面直接编辑项,这样没做一次都要写那么多的城市名,真是让人有崩溃的冲动,网上也有很多实现方法,趁着空闲时间,自己也写几种常用的实现方法。这个例子是使用JavaScript来实现,城市存在数组里,城市名是在网上找到,可以在我的生活百科里面文章里找到,基本涵盖全国所有的城市,所以,下次不用写了,copy吧,不说了,大家一看都明白的。

morecity.js文件代码

var china = [ //直辖市 ['北京市'], ['上海市'], ['天津市'], ['重庆市'], //华北地区 ['河北省','石家庄','唐山','秦皇岛','邯郸','邢台','保定','张家口','承德','沧州','廊坊','衡水'], ['山西省','太原','大同','阳泉','长治','晋城','朔州','晋中','运城','忻州','临汾','吕梁'], ['内蒙古自治区','呼和浩特','包头','乌海','赤峰','通辽','鄂尔多斯','呼伦贝尔','巴彦淖尔','乌兰察布','兴安','锡林郭勒','阿拉善'], //东北地区 ['辽宁省','沈阳','大连','鞍山','抚顺','本溪','丹东','锦州','营口','阜新','辽阳','盘锦','铁岭','朝阳','葫芦岛'], ['吉林省','长春','吉林','四平','辽源','通化','白山','松原','白城','延边'], ['黑龙江','哈尔滨','齐齐哈尔','鸡西','鹤岗','双鸭山','大庆','伊春','佳木斯','七台河','牡丹江','黑河','绥化','大兴安岭'], //华东地区 ['江苏省','南京','无锡','徐州','常州','苏州','南通','连云港','淮安','盐城','扬州','镇江','泰州','宿迁'], ['浙江省','杭州','宁波','温州','嘉兴','湖州','绍兴','金华','衢州','舟山','台州','丽水'], ['安徽省','合肥','芜湖','蚌埠','淮南','马鞍山','淮北','铜陵','安庆','黄山','滁州','阜阳','宿州','巢湖','六安','亳州','池州','宣城'], ['福建省','福州','厦门','莆田','三明','泉州','漳州','南平','龙岩','宁德'], ['江西省','南昌','景德镇','萍乡','九江','新余','鹰潭','赣州','吉安','宜春','抚州','上饶'], ['山东省','济南','青岛','淄博','枣庄','东营','烟台','潍坊','威海','济宁','泰安','日照','莱芜','临沂','德州','聊城','滨州','菏泽'], //中南地区 ['河南省','郑州','开封','洛阳','平顶山','焦作','鹤壁','新乡','安阳','濮阳','许昌','漯河','三门峡','南阳','商丘','信阳','周口','驻马店'], ['湖北省','武汉','黄石','襄樊','十堰','荆州','宜昌','荆门','鄂州','孝感','咸宁','随州','恩施'], ['湖南省','长沙','株洲','湘潭','衡阳','邵阳','岳阳','常德','张家界','益阳','郴州','永州','怀化','娄底','湘西'], ['广东省','广州','深圳','珠海','汕头','韶关','佛山','江门','湛江','茂名','肇庆','惠州','梅州','汕尾','河源','阳江','清远','东莞','中山','潮州','揭阳','云浮'], ['广西自治区','南宁','柳州','桂林','梧州','北海','防城港','钦州','贵港','玉林','百色','贺州','河池','来宾','崇左'], ['海南省','海口','三亚'], //西南地区 ['四川省','成都','自贡','攀枝花','泸州','德阳','绵阳','广元','遂宁','内江','乐山','南充','宜宾','广安','达州','眉山','雅安','巴中','资阳',"阿坝","甘孜","凉山"], ['贵州省','贵阳',"六盘水","遵义","安顺","铜仁","毕节","黔西南","黔东南","黔南"], ['云南省','昆明','曲靖','玉溪',"保山","昭通","丽江","普洱","临沧","文山","红河","西双版纳","楚雄","大理","德宏","怒江","迪庆"], ['西藏自治区',"拉萨","昌都","山南","日喀则","那曲","阿里","林芝"], //西北地区 ['陕西省','西安','铜川','宝鸡','咸阳','渭南','延安','汉中','榆林','安康','商洛'], ['甘肃省',"兰州","嘉峪关","金昌","白银","天水","武威","张掖","平凉","酒泉","庆阳","定西","陇南","临夏","甘南"], ['青海省',"西宁","海东","海北","黄南","海南","果洛","玉树","海西"], ['宁夏自治区','银川',"石嘴山","吴忠","固原","中卫"], ['新疆自治区','乌鲁木齐',"克拉玛依","吐鲁番","哈密","和田","阿克苏","喀什","克孜勒苏柯尔克孜","巴音郭楞蒙古","昌吉","博尔塔拉蒙古","伊犁哈萨克","塔城","阿勒泰"], //港澳台 ['香港特别行政区'], ['澳门特别行政区'], ['台湾省',"台北","高雄","基隆","台中","台南","新竹","嘉义"] ]; function BindProvince(){ var opt0 = "省份"; var ProvinceCount=china.length; var ddlProvince = document.getElementById("ddlProvince"); ddlProvince.innerHTML = ""; ddlProvince.options[0] = new Option(opt0,""); for(var i=0; i<ProvinceCount; i++){ ddlProvince.options[i+1] = new Option(china[i][0],china[i][0]); } } function BindCity(City){ var opt0 = "省份"; var ProvinceCount=china.length; var ddlProvince = document.getElementById("ddlProvince"); ddlProvince.innerHTML = ""; ddlProvince.options[0] = new Option(opt0,""); var opt0City = "城市"; var ddlCity = document.getElementById("ddlCity"); ddlCity.innerHTML = ""; ddlCity.options[0] = new Option(opt0City,""); var flag=false; var chose=true; var selectProvinceIndex=0; for(var i=0; i<ProvinceCount; i++){ if(!flag){ var cityCount = china[i].length; for(var j=1; j<cityCount; j++){ if(china[i][j]==City) { flag=true; selectProvinceIndex=i; break; } } } ddlProvince.options[i+1] = new Option(china[i][0],china[i][0]); if(flag && chose){ ddlProvince.options[i+1].selected = true; chose=false; } } var cityCount = china[selectProvinceIndex].length; for(var i=0; i<cityCount; i++){ if(cityCount == 1 && i == 0){ ddlCity.options[i+1] = new Option(china[selectProvinceIndex][i],china[selectProvinceIndex][i]); i = 1; } else if(cityCount > 1 && i == 0){ i = 1; ddlCity.options[i] = new Option(china[selectProvinceIndex][i],china[selectProvinceIndex][i]); } else{ ddlCity.options[i] = new Option(china[selectProvinceIndex][i],china[selectProvinceIndex][i]); } if(china[selectProvinceIndex][i]==City){ ddlCity.options[i].selected=true; } } } function selectMoreCity(sbj){ var opt0 = "城市"; if(sbj.selectedIndex==0){ var ddlCity = document.getElementById("ddlCity"); ddlCity.innerHTML = ""; ddlCity.options[0] = new Option(opt0,""); return; } var selectProvince = sbj.options[sbj.selectedIndex].value; var ProvinceCount = china.length; for(var i=0; i<ProvinceCount; i++){ if(china[i][0] == selectProvince){ var cityCount = china[i].length; var ddlCity = document.getElementById("ddlCity"); ddlCity.innerHTML = ""; ddlCity.options[0] = new Option(opt0,""); for(var j=0; j<cityCount; j++){ if(cityCount == 1 && j == 0){ ddlCity.options[j+1] = new Option(china[i][j],china[i][j]); j = 1; } else if(cityCount > 1 && j == 0){ j = 1; ddlCity.options[j] = new Option(china[i][j],china[i][j]); } else{ ddlCity.options[j] = new Option(china[i][j],china[i][j]); } if(j == 1){ ddlCity.options[1].selected = true; } } break; } } }

province.html 文件代码

<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>省份城市选择 </title> </head> <body> <mce:script type="text/javascript" src="morecity.js" mce_src="morecity.js"></mce:script> <FORM class="city_title" οnsubmit="manSub(this);return false;" name="spc"> 按省份选择: <select name="ddlProvince" id="ddlProvince" οnchange="selectMoreCity(this)"> </select> <select name="ddlCity" id="ddlCity"> <option selected value="">城市</option> </select> <INPUT value="确定" type="submit" name="提交"> </FORM> <mce:script type="text/javascript" language ="javascript"><!-- //BindProvince();//只初始化省份 BindCity("洛阳");//初始化,并选中洛阳市和洛阳市所在的省 // --></mce:script> </body> </html>

当然,我的水平有限,肯定不是最好的方法,如果有更好的,也贴出来让咱学习学习,呵呵

转载请注明本文地址: 中国省份城市级联选择--JavaScript

中国省份城市级联选择--JavaScript相关推荐

  1. Android学习之省份城市县区选择+向上一级活动返回数据

    json数据使用的是郭霖大神的json数据:http://guolin.tech/api/china/ 连网权限 <uses-permission android:name="andr ...

  2. 中国省份城市 数据表

    -- phpMyAdmin SQL Dump -- version 2.11.5-rc1 -- http://www.phpmyadmin.net -- -- 主机: localhost -- 生成日 ...

  3. Android 省份城市搜索,Android 实现省份城市的选择,并获取城市编号

    该程序主要使用 中央气象局 省份 城市数据库为基础 进行读取 下载的数据库 db_weather.db 放到sdcard/weather 目录下面 方便后续操作 为了更好的了解数据库,使用 SQLit ...

  4. 国家省份城市级联菜单

    <html> <head> <title>级联菜单</title> <meta http-equiv="Content-Type&quo ...

  5. js实现城市级联选择,二级选择

    代码实例:以下代码可以直接粘贴使用,但里面的城市并不完整. 实现原理是利用 js的onchang方法,调用city.js文件里的changecity()函数,var text = city[index ...

  6. jquery省份城市联动选择下拉框

    <script type="text/javascript" src="__PUBLIC__/Medidata/js/jquery-1.8.3.min.js&quo ...

  7. mysql添加中国省份城市sql语句

    -- 创建省份表 create table Provincial(province_id int primary key auto_increment,province_name varchar(50 ...

  8. 中国省份城市json数据

     [{     "ProID": 1,     "name": "北京市",     "ProSort": 1,   ...

  9. 国家统计局省份城市对照码javascript库(可实现数据对接),原创.开源LGPL

    function ProvinceAndCities{ var _code=[{"Code":"110000","Name":"北 ...

最新文章

  1. iptables防火墙的基本配置
  2. 电脑编程教学_梁溪区在线少儿编程哪个机构比较靠谱
  3. Demo:基于 Flink SQL 构建流式应用
  4. 第2.02节 下载源码
  5. scala 方法重载_Scala中的方法重载
  6. 【LeetCode笔记】543. 二叉树的直径(Java、dfs、二叉树)
  7. 个人所得税如何填写最划算?
  8. DevExpress 之 GridControl 自定义列
  9. 基于序列图像的三维体绘的视线投射算法
  10. altium Designer布等长线、蛇形线
  11. 有关单片机c语言的参考文献,单片机设计参考文献
  12. html5游戏cps,15字讲清CPC、CPM、CPA、CPS、CPL…没节操了
  13. android USB OTG功能如何打开及实现
  14. 高效建站(华为云服务器建站IIS篇)
  15. 11210怎么等于24_所有能算24点的四个数,(4个数只能是1——10之间的数)我举个例:1,1,1,8.1,1,2,6.………………所有能算...
  16. JGG | EVenn: 3分钟在线轻松绘制5种Venn图和Venn网络
  17. 【Retrofit】1.02.0区别
  18. 如何手动下载并安装 Visual Studio Code 的 SAP Fiori tools - Extension Pack 扩展
  19. 疯狂python讲义学习笔记——中十章完结
  20. 【力扣周赛】第342场周赛

热门文章

  1. 微信小程序云开发成绩查询小程序的制作过程。
  2. 数论-中国剩余定理(crt) 与拓展中国剩余定理(excrt)
  3. LCD液晶显示器高压板维修代换实例[显示器维修实例15个]
  4. spring_如何在Spring Boot App中集成H2数据库
  5. 计算机审计实训实施阶段工作,计算机审计实训报告.pptx
  6. 项目管理理论介绍(上)
  7. linux下vbox安装mac,virtualbox安装mac
  8. 数据分享|中国各省、各市、各区县分年、分月、逐日平均气温数据(2000年~2019年)
  9. 容量法和库仑法的异同点_卡尔-费休容量法与库仑法的区别
  10. 【JavaEE初阶】第八节.网络原理网络层和数据链路层,应用层