<head>
<meta charset="UTF-8">
<title>地址联动下拉框实现</title>
<link rel="stylesheet" type="text/css" href="reset.css">
<link rel="stylesheet" type="text/css" href="bootstrap.min.css">
<script type="text/javascript" src="citys.js"></script>
</head>
// head部分reset清除不同浏览器的差异,用bootstrap主要是因为下拉框太丑,大家也可以自制下拉框(如果需要兼容ie低版本的话)citys.js储存的是地址,省市县。下载地址是这个https://passport.baidu.com/js/sitedata_bas.js
<div class="container">
<h2 class="header">地址联动下拉框</h2>
<div class="form-group" id="main">
<select class="form-control" style="width: 20%;float: left;">
</select>
<select class="form-control" style="width: 20%;float: left;">
</select>
<select class="form-control" style="width: 20%;float: left;">
</select>
</div>
</div>
//body结构
//下面主讲一下思路,首先第一个下拉框要添加省的内容,当这个下拉框onchange时候第二个下拉框就跟着变,同理第二个下拉框onchange的时候第三一个就跟着变了。
<script type="text/javascript">
window.onload = function (){
var main = document.getElementById("main");
var selects = main.getElementsByTagName("select");
//注 arrCity 是citys.js中的 全国地址json数据
//初始化省份,为第一个下拉框添加内容
//ie8以下不兼容for in 可以采用for 循环
//写之前先研究json的结构
for( pro in arrCity){
createOption(selects[0],arrCity[pro].name)
}
//创建 option的函数
function createOption(parent,innerHTML){
var option = document.createElement("option");
option.innerHTML = innerHTML
parent.appendChild(option);
}
//初始化完成、联动开始
//第一个下拉框改变的时候
var one = 0 //初始化省的选择位置
selects[0].onchange = function (){
//清空第二个和第三个下拉框
selects[1].innerHTML = selects[2].innerHTML = ‘‘;
for ( pro in arrCity){
//判断选择的是哪个省份
if (this.value == arrCity[pro].name) {
// 省份变动
one = pro;
// 省份下面有一个sub数组是盛放市的
for(city in arrCity[pro].sub){
//添加市
createOption(selects[1],arrCity[pro].sub[city].name);
}
}
}
}
//第二个下拉框改变的时候
selects[1].onchange = function (){
//只有第三个下拉菜单清空
selects[2].innerHTML = ‘‘;
//判断选择的那个省 one已经帮我们记录了
//判断哪个市
for ( city in arrCity[one].sub){
if (this.value == arrCity[one].sub[city].name) {
// 市份下面有一个sub数组是盛放县的
for( county in arrCity[one].sub[city].sub){
//添加县
createOption(selects[2],arrCity[one].sub[city].sub[county].name);
}
}
}
}
}
</script>
//对于我的难点就json数据结构的处理,总的来说就是先看arrcity的结构在做处理,在实际操作的过程,程序返回值也是这个样子的,都需要我们进行加工还原成html结构。
//最后的结构是这个样子的
这是本人第一篇博客,本人从小不擅长笔记,写的比较嘈杂,欢迎指正
地址联动下拉框实现
时间: 2024-10-26 06:16:32
地址联动下拉框实现的相关文章
SharePoint 2013 使用查阅项实现联动下拉框
SharePoint列表使用中,经常会用到下拉框,而有些特殊的需求,会用到联动的下拉框,在SharePoint中默认没有这样的字段,所以如果实现,我们需要自己想办法. 这里,我们介绍如何使用JQuery+JavaScript客户端对象模型实现,下面让我简单介绍下实现的全过程. 1.创建基础列表CityList,保存的是城市名称,使用默认字段Title: 2.列表CityList的所有栏,我把Title字段的名称改为了City Name,如下图: 3.创建基础列表AreaList,用于保存所有区和
jq实现简单的二级联动下拉框
1 效果图 2 html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compati
jquery+ligerform三级联动下拉框
如下为ligerform里的三级联动下拉框: var formData=[ {display:"县区",name:"QY",newline:true,labelWidth:100,width:220,space:50,type:"select",group:"区域信息",groupicon:"@Url.Content("~/Content/icons/32X32/communication.gif"
JS年月日三级联动下拉框日期选择代码
原博客网址: http://www.cnblogs.com/gdcgy/p/5467742.html 由于工作中涉及到生日编辑资料编辑,年月日用上面网址案例:bug提示: 编辑生日栏的[年]或者[月],之前保存的具体的[日]就不显示啦,产品说不管编辑哪个数据,其他数据不变: 然后自己改了一下代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xh
Web 1三级联动 下拉框 2添加修改删除 弹框
Web 三级联动 下拉框 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { private MyDBDataContext _Context = new MyDBD
新生入学--JS省市二级联动下拉框
在新生入学过程中,会添加自己的个人信息,如生源地或者家庭住址等.像这样的信息如果让学生自己输入可能会出现不规范的现象,我们做统计的时候很不方便,所以设计成下拉框选择的形式,这样存进数据库中的数据就都是规范的了. 籍贯的选择涉及到我们全国的34个省市等,而且选择了每个省之后要相应的知道这个省的市到县,这就用到了下拉框的联动.以前在ASP.NET中是用过的,当时是两个控件的联动从数据库中直接查数据,在JS中也是同样的道理. 联动效果如下图: 接着说说代码,用到了JavaScript和html以及一些
省市区三级联动下拉框效果分析
<select id="selProvince"> <option>--请选择--</option> </select> <select id="selCity"> <option>--请选择--</option> </select> <select id="selCountry"> <option>--请选择--</op
Android实现三级联动下拉框 下拉列表spinner的实例
主要实现办法:动态加载各级下拉值的适配器 在监听本级下拉框,当本级下拉框的选中值改变时,随之修改下级的适配器的绑定值 XML布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_
jquery+html三级联动下拉框及详情页面加载时的select初始化问题
html写的三个下拉框,如下: <select name="ddlQYWZYJ" id="ddl_QYWZYJ" class="fieldsel" style="width: 200px;font-size:12px" ></select> <select name="ddlQYWZEJ" id="ddl_QYWZEJ" class="fields