js实现城市二级联动列表
这个是一个同事写的,我看着有用,就cv下来了.
程序功能主要逻辑是:
1.当一级标签市显示默认状态 '-请选择-'时,二级标签要隐藏
2.一级标签选中城市时,二级标签显示在页面,并列出响应市区
3.当一级标签选回默认状态时,二级标签隐藏

<!DOCTYPE HTML>
<html>
<head>
<title>城市二级联动列表</title>
<meta charset="utf-8" />
<style>
.hide{ display: none; }
</style> </head>
<body>
<select name="provs">
<option>—请选择—</option><!---->
<option>北京市</option><!---->
<option>天津市</option>
<option>河北省</option>
</select> <select name="cities" class="hide">
</select>
<script>
/*实现“省”和“市”的级联下拉列表*/
var cities=[
[{"name":'东城区',"value":101},
{"name":'西城区',"value":102},
{"name":'海淀区',"value":103},
{"name":'朝阳区',"value":104}],//0
[{"name":'河东区',"value":201},
{"name":'河西区',"value":202},
{"name":'南开区',"value":303}],
[{"name":'石家庄市',"value":301},
{"name":'廊坊市',"value":302},
{"name":'保定市',"value":303},
{"name":'唐山市',"value":304},
{"name":'秦皇岛市',"value":304}]
];
//查找两个select
var selProvs=
document.getElementsByName(
"provs"
)[0];
var selCts=
document.getElementsByName(
"cities"
)[0];
//为selProvs绑定选中项改变事件
selProvs.onchange=function(){
//获得当前select选中项的下标
var i=this.selectedIndex;
if(i>0){
//获得cities数组中i-1位置的子数组
var cts=cities[i-1];
//清空selCts的内容:
selCts.innerHTML="";
//创建文档片段
var frag=
document.createDocumentFragment();
//创建一个option,内容为-请选择-,追加到selCts下
var opt=
document.createElement("option");
opt.innerHTML="-请选择-";
frag.appendChild(opt);
//遍历cts中每个城市
for(var i=0;i<cts.length;i++){
//创建一个option,设置其内容为当前城市的name属性,设置其value为当前城市的value属性,追加到selCts中
var opt=
document.createElement("option");
//cts[i]:
// {"name":'东城区',"value":101}
opt.innerHTML=cts[i]["name"];
opt.value=cts[i]["value"];
frag.appendChild(opt);
}
//将frag整体追加到selCts中
selCts.appendChild(frag);
//清除selCts的class
selCts.className="";
}else
selCts.className="hide";
}
</script>
</body>
</html>
js实现城市二级联动列表的更多相关文章
- jq简单城市二级联动实现
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Mybatis + js 实现下拉列表二级联动
Mybatis + js 实现下拉列表二级联动 学习内容: 一.业务需求 二.实现效果 三.代码实现 1. province_city.jsp 2. TwoController 2. Province ...
- 【分享】纯js的n级联动列表框 —— 基于jQuery,支持下拉列表框和列表框,最重要的是n级,当然还有更重要的
多个列表框联动,不算是啥大问题,但是却挺麻烦,那么怎么才能够尽量方便一点呢?网上搜了一下,没发现太好用的,于是就自己写了一个.基于jQuery,无限级联动,支持下拉列表框和列表框. 先说一下步骤和使用 ...
- asp.net mvc jQuery 城市二级联动
页面效果图: 数据库表结构: 首先在数据库中创建省级.城市的表,我的表如下:我用了一张表放下了省级.城市的数据,用level划分省份和城市,parentId表示该城市所在省份的id 主要文件有:ind ...
- xml+js+html的二级联动
首先需要准备的文档是: cities.xml //主要是标注中国各省及其各省下的各个城市 内容如下: <?xml version="1.0" encoding="U ...
- Ajax实现的城市二级联动二
上一篇联动一种只是城市用ajax请求获取并渲染,这里将省份也用ajax请求并渲染 1.HTML <select id="province"> <option> ...
- Ajax实现的城市二级联动一
前一篇是把省份和城市都写在JS里,这里把城市放在PHP里,通过发送Ajax请求城市数据渲染到页面. 1.html <select id="province"> < ...
- 纯js的N级联动列表框 —— 基于jQuery
多个列表框联动,不算是啥大问题,但是却挺麻烦,那么怎么才能够尽量方便一点呢?网上搜了一下,没发现太好用的,于是就自己写了一个.基于jQuery,无限级联动,支持下拉列表框和列表框. 先说一下步骤和使用 ...
- js实现菜单二级联动
代码如下,以便自己以后方便查阅: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> < ...
随机推荐
- Visio Yoeman
Visio需要确定文件位置才能运行的 Yo主要是用来生成框架的,相当于是一个框架生成器 new install -g generator-django 然后在Visio按F5,选择要创建的环境,就可以 ...
- table实现 js数据访问 传递json数据用render_to_response
$(document).ready(function(){ $.ajax({ url:'/query/', dataType:'json', type:'GET', success:function( ...
- wtforms Form实例化流程(源码解析)
class LoginForm(Form): #首先执行后得到的结果是UnboundField()对象 name=simple.StringField( label='用户名', validato ...
- mongodb的安装使用和pymongo基本使用
(1) mongodb的安装 下载tgz解压后,需要添加相应的环境变量才能在终端直接启动mongod. mongodb数据存储在/data/db中,需要手动创建目录树,同时mongod执行的时候如果权 ...
- Hadoop25---netty,单个handler
ke客户端: package cn.itcast_03_netty.sendstring.client; import io.netty.bootstrap.Bootstrap; import io. ...
- 限制goroutine数量写法
虽然golang的goroutine可以开启无数个goroutine,但是没有限制也是不行的.我就写一下我对goroutine数量限制的写法 1.初始化goroutine协程池.把goroutine数 ...
- Maven配置与创建
1.下载Maven工具 从maven官网下载:https://maven.apache.org/download.cgi apache-maven-x.x.x-bin.zip ,解压到指定目录,例如D ...
- python 中 正则表达式 的应用
python 中 正则表达式 的应用 最近作业中出现了正则表达式,顺便学习了一下. python比较厉害的一点就是自带对正则表达式的支持,用起来很方便 正则表达式 首先介绍一下什么是正则表达式. 正则 ...
- Java对象初始化
自动初始化(默认值) 一个类的所有基本数据成员都会得到初始化,运行下面的例子可以查看这些默认值: class Default{ boolean t; char c; byte b; short s; ...
- codevs 1017 乘积最大 dp
1017 乘积最大 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚 ...