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 相关文章推荐
重定向实现代码
Nov 20 Javascript
jQuery hover 延时器实现代码
Mar 12 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
Jun 05 Javascript
jquery设置按钮停顿3秒不可用
Mar 07 Javascript
通过JS动态创建一个html DOM元素并显示
Oct 15 Javascript
javascript实现简单的html5视频播放器
May 06 Javascript
JavaScript实现下拉菜单的显示和隐藏
Jan 05 Javascript
JavaScript中removeChild 方法开发示例代码
Aug 15 Javascript
JavaScript数据结构之二叉树的查找算法示例
Apr 13 Javascript
Webpack打包css后z-index被重新计算的解决方法
Jun 18 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
Feb 10 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
Aug 20 Javascript
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+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
php中session过期时间设置及session回收机制介绍
2014/05/05 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
js+FSO遍历文件夹下文件并显示
2007/03/07 Javascript
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
js树插件zTree获取所有选中节点数据的方法
2015/01/28 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
详解vue-cli 构建Vue项目遇到的坑
2017/08/30 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
vue .sync修饰符的使用详解
2018/06/15 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
2018/08/12 Javascript
Vue中的Props(不可变状态)
2018/09/29 Javascript
vue表单数据交互提交演示教程
2019/11/13 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
[01:58]DOTA2上海特级锦标赛现场采访:RTZ这个ID到底好不好
2016/03/25 DOTA
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
详解Python中的多线程编程
2015/04/09 Python
python实现逆波兰计算表达式实例详解
2015/05/06 Python
python将unicode转为str的方法
2017/06/21 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
2019/05/30 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
python实现简单的购物程序代码实例
2020/03/03 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
美国用餐电影院:Alamo Drafthouse Cinema
2020/01/23 全球购物
幼儿园教学随笔感言
2014/02/23 职场文书
服务行业演讲稿
2014/09/02 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
pytorch 6 batch_train 批训练操作
2021/05/28 Python
Mysql如何实现不存在则插入,存在则更新
2022/03/25 MySQL