省市县三级联动
时间:2022-05-04
本文章向大家介绍省市县三级联动,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
上次找到地区编码后,就测试省市县。网上找到例子感觉不是很合适,然后修改了下。
本来是从自己数据库查询,但做测试的话,在网上找到了一个地区编码的api,然后就是跨域问题。原来用ajax访问失败,getJSON可以,但getJson有同步问题,设置了全局参数也不管用,只好重复使用了。
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>Insert title here</title>
6 <script type="text/javascript" src="jquery-1.8.3.min.js" ></script>
7 </head>
8 <body>
9 <div class="selectList">
10 <select class="province" id="province">
11 <option>请选择</option>
12 </select>
13 <select class="city" id="city">
14 <option>请选择</option>
15 </select>
16 <select class="district" id="district">
17 <option>请选择</option>
18 </select>
19 <input type='button' value='获取代码' onclick="getCode();"> </input>
20 </div>
21 <div class="selectList2">
22 <select class="province">
23 <option>请选择</option>
24 </select>
25 <select class="city">
26 <option>请选择</option>
27 </select>
28 <select class="district">
29 <option>请选择</option>
30 </select>
31 </div>
32 <script type="text/javascript">
33 function getCode(){
34 console.log($('#province').val());
35 console.log($('#city').val());
36 console.log($('#district').val());
37 alert($('#province').val()+$('#province').find("option:selected").text()
38 +'n'+$('#city').val()+$('#city').find("option:selected").text()
39 +'n'+$('#district').val()+$('#district').find("option:selected").text()
40 );
41 }
42
43 function initMyArea(without_id,p,c,d){
44 var oProvince = $('.'+without_id).find(".province");
45 var oCity = $('.'+without_id).find(".city");
46 var oDistrict = $('.'+without_id).find(".district");
47 initProvince(p,c,d);
48
49 function initProvince(pr,ci,di){
50 // var options =getAreaData('000000');
51 $.getJSON('http://api.dangqian.com/apidiqu2/api.asp?format=json&callback=?',{id:'000000000000'},function(data){
52
53 var list = data.list;
54 var temp_html="<option value='0'>请选择</option>";
55 $.each(list,function(name,value){
56 temp_html+="<option value='"+value.daima+"'>"+value.diming+"</option>";
57
58 });
59
60 oProvince.html(temp_html);
61 if(pr!=undefined){
62 oProvince.val(pr);
63 }
64 changeProvince(ci,di);
65
66 });
67
68
69 }
70
71 //当省改变赋值市
72 function changeProvince(ci,di){
73 var n = oProvince.val();
74 var pre=n.substring(0,2);
75 if(pre==71 || pre ==81 || pre==82){
76 oDistrict.css("display","none");
77 oCity.css("display","none");
78 }else{
79 oDistrict.css("display","inline");
80 oCity.css("display","line");
81 }
82
83 $.getJSON('http://api.dangqian.com/apidiqu2/api.asp?format=json&callback=?',{id:n},function(data){
84
85 var list = data.list;
86 var temp_html="<option value='0'>请选择</option>";
87 $.each(list,function(name,value){
88 temp_html+="<option value='"+value.daima+"'>"+value.diming+"</option>";
89
90 });
91
92 oCity.html(temp_html);
93 if(ci!=undefined){
94 oCity.val(ci);
95 }
96 changeCity(di);
97
98 });
99
100 };
101 //当市改变赋值县
102 function changeCity(di){
103 var n = oCity.val();
104 /*var options =getAreaData(n);
105 oDistrict.html(options);
106 if(di!=undefined)
107 oDistrict.val(di);*/
108 if(n=='0'){
109 oDistrict.val(0);
110 return;
111 }
112 $.getJSON('http://api.dangqian.com/apidiqu2/api.asp?format=json&callback=?',{id:n},function(data){
113
114 var list = data.list;
115 var temp_html="<option value='0'>请选择</option>";
116 $.each(list,function(name,value){
117 temp_html+="<option value='"+value.daima+"'>"+value.diming+"</option>";
118
119 });
120
121 oDistrict.html(temp_html);
122 if(di!=undefined){
123 oDistrict.val(di);
124 }
125
126
127 });
128 };
129 //选择省改变市
130 oProvince.change(function(){
131 changeProvince();
132 });
133 //选择市改变县
134 oCity.change(function(){
135 changeCity();
136 });
137
138
139 function getAreaData(code){
140 var temp_html = "<option value='0'>请选择</option>";
141 $.getJSON('http://api.dangqian.com/apidiqu2/api.asp?format=json&callback=?',function(data){
142 console.log(data.list)
143 var list = data.list;
144 $.each(list,function(name,value){
145 temp_html+="<option value='"+value.daima+"'>"+value.diming+"</option>";
146
147 })
148
149 });
150
151 return temp_html;
152 }
153
154 }
155
156 $(document).ready(function(){
157 initMyArea('selectList','130000000000','130600000000','130622000000');
158 initMyArea('selectList2','210000000000','210500000000','210504000000');
159 });
160
161
162
163 </script>
164 </body>
165 </html>
- 基于Open vSwitch的VxLAN隧道实验网络
- 来来来,快来围观那个Kotlin
- 怎样提高网站访问速度缩短网页加载时间
- 使用Kotlin开发一个Spring Boot Webflux Streaming应用(附视频)
- 插入排序算法
- Javascript 的addEventListener()及attachEvent()区别分析
- 设计模式-用接口来实现filter!梭梭就是干!
- OpenDaylight实现轮询策略的负载均衡服务
- 微服务业务开发三个难题-拆分、事务、查询(上)
- 总结了一些指针易出错的常见问题(五)
- 微服务业务开发三个难题-拆分、事务、查询(下)
- C语言之控制台读取上下左右方向键指令
- C程序之修改Windows的控制台大小
- VS2010/MFC编程(对话框:模态对话框及其弹出过程)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Echarts图表宽度变成100px,让图表宽度随着父元素自动适应,Vue实时监听宽度的变化,这可能是史上最好的解决方案!
- Vim 基础和常用命令整理
- TinyMCE 优化百度地图 bdmap 插件
- 更新!万字长文带你拿下九大排序的原理、Java 实现以及算法分析
- mysql 同一张表查询 left join
- uni-app运行到浏览器跨域H5页面的跨域问题解决方案
- 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇)
- 树状数据库表查询2次以上(自连接、内连接、别名)方法
- 网页背景H5视频自动播放---PC端、移动端兼容问题完美解决方案(IOS、安卓、微信端)
- 【STM32F407】第11章 RL-TCPnet V7.X之TCP服务器
- 如何解决nodejs中cpu密集型的任务
- 博客园主题1【备份】
- 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇)
- POSTGRESQL 到底怎么访问同instance 的库--
- 简单工厂模式