javascript省市区三级联动下拉框菜单实例演示


Posted in Javascript onNovember 29, 2015

本文实例讲述了javascript实现省市区三级联动下拉框菜单代码,像平时购物选择地址时一样,通过选择的省动态加载城市列表,通过选择的城市动态加载县区列表,从而可以实现省市县的三级联动,下面使用原生的JavaScript来实现这个功能,分享给大家供大家参考。具体如下:
运行效果截图如下:

javascript省市区三级联动下拉框菜单实例演示

具体代码如下:

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title>三级联动测试</title>
 <script src="jquery-2.1.4.min.js"></script>
 <script type="text/javascript">
  //用来获得option元素中selected属性为true的元素的id
  function Get_Selected_Id(place){
   var pro = document.getElementById(place);
   var Selected_Id = pro.options[pro.selectedIndex].id;
   return Selected_Id;   //返回selected属性为true的元素的id
  }
  //改变下一个级联的option元素的内容,即加载市或县
  function Get_Next_Place(This_Place_ID,Action){
   var Selected_Id = Get_Selected_Id(This_Place_ID); //Selected_Id用来记录当前被选中的省或市的ID
   if(Action=='Get_city')       //从而可以在下一个级联中加载相应的市或县
    Add_city(Selected_Id);
   else if(Action=='Get_country')
    Add_country(Selected_Id);
  }
  //用来存储省市区的数据结构
  var Place_dict = {
   "GuangDong":{
       "GuangZhou":["PanYu","HuangPu","TianHe"],
       "QingYuan":["QingCheng","YingDe","LianShan"],
       "FoShan":["NanHai","ShunDe","SanShui"]
       },
   "ShanDong":{
       "JiNan":["LiXia","ShiZhong","TianQiao"],
       "QingDao":["ShiNan","HuangDao","JiaoZhou"]
       },
   "HuNan":{
       "ChangSha":["KaiFu","YuHua","WangCheng"],
       "ChenZhou":["BeiHu","SuXian","YongXian"]
      }
  };
  //加载城市选项
  function Add_city(Province_Selected_Id){
   $("#city").empty();
   $("#city").append("<option>City</option>");
   $("#country").empty();
   $("#country").append("<option>Country</option>");
   //上面的两次清空与两次添加是为了保持级联的一致性
   var province_dict = Place_dict[Province_Selected_Id]; //获得一个省的字典
   for(city in province_dict){  //取得省的字典中的城市
    //添加内容的同时在option标签中添加对应的城市ID
    var text = "<option"+" id='"+city+"'>"+city+"</option>";
    $("#city").append(text);
    console.log(text); //用来观察生成的text数据
   }
  }
  //加载县区选项
  function Add_country(City_Selected_Id){
   $("#country").empty();
   $("#country").append("<option>Country</option>");
   //上面的清空与添加是为了保持级联的一致性
   var Province_Selected_ID = Get_Selected_Id("province");  //获得被选中省的ID,从而方便在字典中加载数据
   var country_list = Place_dict[Province_Selected_ID][City_Selected_Id]; //获得城市列表
   for(index in country_list){
    ////添加内容的同时在option标签中添加对应的县区ID
    var text = "<option"+" id=\'"+country_list[index]+"\'>"+country_list[index]+"</option>";
    $("#country").append(text);
    console.log(text); //用来观察生成的text数据
   }
  }
 
 </script>
</head>
<body>
 <p>您的收货地址:</p>
 <select id="province" onchange="Get_Next_Place('province','Get_city')">
  <option id="Not_data1">Province</option>
  <option id="GuangDong" value="GuangDong">GuangDong</option>
  <option id="ShanDong" value="ShanDong">ShanDong</option>
  <option id="HuNan" value="HuNan">HuNan</option>
 </select>
 <select id="city" onchange="Get_Next_Place('city','Get_country')">
  <option id="Not_data2">City</option>
 </select>
 <select id="country">
  <option id="Not_data3">Country</option>
 </select>
 <br/>
</body>
</html>

如果大家还想深入学习,可以点击jquery下拉框效果汇总、JavaScript下拉框效果汇总进行学习。

这个实例就是类似在淘宝购物时填写收货地址,实现省市县的三级联动,希望大家可以应用到自己的作品中,学以致用。

Javascript 相关文章推荐
Jquery Ajax.ashx 高效分页实现代码
Oct 20 Javascript
一个可以兼容IE FF的加为首页与加入收藏实现代码
Nov 02 Javascript
js函数中onmousedown和onclick的区别和联系探讨
May 19 Javascript
JavaScript调用客户端的可执行文件(示例代码)
Nov 28 Javascript
javascript实现获取cookie过期时间的变通方法
Aug 14 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
Feb 16 Javascript
jQuery Easyui快速入门教程
Aug 21 Javascript
JavaScript交换两个变量值的七种解决方案
Dec 01 Javascript
vueScroll实现移动端下拉刷新、上拉加载
Mar 22 Javascript
浅谈JS的原型和继承
May 08 Javascript
使用vue实现HTML页面生成图片的方法
Mar 12 Javascript
用jQuery实现抽奖程序
Apr 12 jQuery
jQuery插件EasyUI校验规则 validatebox验证框
Nov 29 #Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
Nov 29 #Javascript
整理Javascript流程控制语句学习笔记
Nov 29 #Javascript
基于javascript代码实现通过点击图片显示原图片
Nov 29 #Javascript
整理Javascript数组学习笔记
Nov 29 #Javascript
Bootstrap每天必学之缩略图与警示窗
Nov 29 #Javascript
分享我的jquery实现下拉菜单心的
Nov 29 #Javascript
You might like
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
php float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
php文件缓存类用法实例分析
2015/04/22 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
php实现简单四则运算器
2020/11/29 PHP
解放web程序员的输入验证
2006/10/06 Javascript
通过JAVASCRIPT读取ASP设定的COOKIE
2007/02/15 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
对Web开发中前端框架与前端类库的一些思考
2015/03/27 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
NodeJs通过async/await处理异步的方法
2017/10/09 NodeJs
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
express默认日志组件morgan的方法
2018/04/05 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
如何使用python爬取csdn博客访问量
2016/02/14 Python
python3.4.3下逐行读入txt文本并去重的方法
2018/04/29 Python
python中的print()输出
2019/04/12 Python
python使用if语句实现一个猜拳游戏详解
2019/08/27 Python
pytorch中获取模型input/output shape实例
2019/12/30 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
TOWER London官网:鞋子、靴子、运动鞋等
2019/07/14 全球购物
本科毕业生求职信
2014/06/15 职场文书
公司委托书格式
2014/08/01 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL