`
lixuanbin
  • 浏览: 137678 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

jQuery + jQuery Mobile 实现省市二级下拉列表页面

阅读更多

一、需求:

提供省、市下拉列表,当用户选择省一级下拉列表项后,市下拉列表的各个选项自动变为该省对应的城市列表。

 

二、效果:



 

三、实现:

1.省市json数据,来自:

http://www.cnblogs.com/jinzhao/archive/2012/04/01/2428142.html

/**
 * 省市json数据
 */
var provinceAndCityArray = [{ name: "北京", cities: ["西城", "东城", "崇文", "宣武", "朝阳", "海淀", "丰台", "石景山", "门头沟", "房山", "通州", "顺义", "大兴", "昌平", "平谷", "怀柔", "密云", "延庆"] },
                       { name: "天津", cities: ["青羊", "河东", "河西", "南开", "河北", "红桥", "塘沽", "汉沽", "大港", "东丽", "西青", "北辰", "津南", "武清", "宝坻", "静海", "宁河", "蓟县", "开发区"] },
                       { name: "河北", cities: ["石家庄", "秦皇岛", "廊坊", "保定", "邯郸", "唐山", "邢台", "衡水", "张家口", "承德", "沧州", "衡水"] },
                       { name: "山西", cities: ["太原", "大同", "长治", "晋中", "阳泉", "朔州", "运城", "临汾"] },
                       { name: "内蒙古", cities: ["呼和浩特", "赤峰", "通辽", "锡林郭勒", "兴安"] },
                       { name: "辽宁", cities: ["大连", "沈阳", "鞍山", "抚顺", "营口", "锦州", "丹东", "朝阳", "辽阳", "阜新", "铁岭", "盘锦", "本溪", "葫芦岛"] },
                       { name: "吉林", cities: ["长春", "吉林", "四平", "辽源", "通化", "延吉", "白城", "辽源", "松原", "临江", "珲春"] },
                       { name: "黑龙江", cities: ["哈尔滨", "齐齐哈尔", "大庆", "牡丹江", "鹤岗", "佳木斯", "绥化"] },
                       { name: "上海", cities: ["浦东", "杨浦", "徐汇", "静安", "卢湾", "黄浦", "普陀", "闸北", "虹口", "长宁", "宝山", "闵行", "嘉定", "金山", "松江", "青浦", "崇明", "奉贤", "南汇"] },
                       { name: "江苏", cities: ["南京", "苏州", "无锡", "常州", "扬州", "徐州", "南通", "镇江", "泰州", "淮安", "连云港", "宿迁", "盐城", "淮阴", "沐阳", "张家港"] },
                       { name: "浙江", cities: ["杭州", "金华", "宁波", "温州", "嘉兴", "绍兴", "丽水", "湖州", "台州", "舟山", "衢州"] },
                       { name: "安徽", cities: ["合肥", "马鞍山", "蚌埠", "黄山", "芜湖", "淮南", "铜陵", "阜阳", "宣城", "安庆"] },
                       { name: "福建", cities: ["福州", "厦门", "泉州", "漳州", "南平", "龙岩", "莆田", "三明", "宁德"] },
                       { name: "江西", cities: ["南昌", "景德镇", "上饶", "萍乡", "九江", "吉安", "宜春", "鹰潭", "新余", "赣州"] },
                       { name: "山东", cities: ["青岛", "济南", "淄博", "烟台", "泰安", "临沂", "日照", "德州", "威海", "东营", "荷泽", "济宁", "潍坊", "枣庄", "聊城"] },
                       { name: "河南", cities: ["郑州", "洛阳", "开封", "平顶山", "濮阳", "安阳", "许昌", "南阳", "信阳", "周口", "新乡", "焦作", "三门峡", "商丘"] },
                       { name: "湖北", cities: ["武汉", "襄樊", "孝感", "十堰", "荆州", "黄石", "宜昌", "黄冈", "恩施", "鄂州", "江汉", "随枣", "荆沙", "咸宁"] },
                       { name: "湖南", cities: ["长沙", "湘潭", "岳阳", "株洲", "怀化", "永州", "益阳", "张家界", "常德", "衡阳", "湘西", "邵阳", "娄底", "郴州"] },
                       { name: "广东", cities: ["广州", "深圳", "东莞", "佛山", "珠海", "汕头", "韶关", "江门", "梅州", "揭阳", "中山", "河源", "惠州", "茂名", "湛江", "阳江", "潮州", "云浮", "汕尾", "潮阳", "肇庆", "顺德", "清远"] },
                       { name: "广西", cities: ["南宁", "桂林", "柳州", "梧州", "来宾", "贵港", "玉林", "贺州"] },
                       { name: "海南", cities: ["海口", "三亚"] },
                       { name: "重庆", cities: ["渝中", "大渡口", "江北", "沙坪坝", "九龙坡", "南岸", "北碚", "万盛", "双桥", "渝北", "巴南", "万州", "涪陵", "黔江", "长寿"] },
                       { name: "四川", cities: ["成都", "达州", "南充", "乐山", "绵阳", "德阳", "内江", "遂宁", "宜宾", "巴中", "自贡", "康定", "攀枝花"] },
                       { name: "贵州", cities: ["贵阳", "遵义", "安顺", "黔西南", "都匀"] },
                       { name: "云南", cities: ["昆明", "丽江", "昭通", "玉溪", "临沧", "文山", "红河", "楚雄", "大理"] },
                       { name: "西藏", cities: ["拉萨", "林芝", "日喀则", "昌都"] },
                       { name: "陕西", cities: ["西安", "咸阳", "延安", "汉中", "榆林", "商南", "略阳", "宜君", "麟游", "白河"] },
                       { name: "甘肃", cities: ["兰州", "金昌", "天水", "武威", "张掖", "平凉", "酒泉"] },
                       { name: "青海", cities: ["黄南", "海南", "西宁", "海东", "海西", "海北", "果洛", "玉树"] },
                       { name: "宁夏", cities: ["银川", "吴忠"] },
                       { name: "新疆", cities: ["乌鲁木齐", "哈密", "喀什", "巴音郭楞", "昌吉", "伊犁", "阿勒泰", "克拉玛依", "博尔塔拉"] },
                       { name: "香港", cities: ["中西区", "湾仔区", "东区", "南区", "九龙-油尖旺区", "九龙-深水埗区", "九龙-九龙城区", "九龙-黄大仙区", "九龙-观塘区", "新界-北区", "新界-大埔区", "新界-沙田区", "新界-西贡区", "新界-荃湾区", "新界-屯门区", "新界-元朗区", "新界-葵青区", "新界-离岛区"] },
                       { name: "澳门", cities: ["花地玛堂区", "圣安多尼堂区", "大堂区", "望德堂区", "风顺堂区", "嘉模堂区", "圣方济各堂区", "路氹城"]}];

 

2.html页面,主要就是放置了两个select,使用了jQuery Mobile:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
	href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />
<title>meetwe</title>
</head>
<body>
	<table width="100%" cellpadding="10">
		<tr>
			<td align="center">请选择省份</td>
			<td align="left"><select id="selectProvince">
					<option value="-1">请选择省份</option>
			</select></td>
		</tr>
		<tr>
			<td align="center">请选择城市</td>
			<td align="left"><select id="selectCity">
					<option value="-1">请选择城市</option>
			</select></td>
		</tr>
	</table>
	<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
	<script	src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>

        <script src="../js/province-and-city-json.js"></script>
        <script src="../js/create-province-and-city.js"></script>
</body>
</html>

 

3.js代码实现填充下拉列表选项,并响应省一级下拉列表选中项改变事件更改市级下拉列表取值:

$(document).on("pageinit", function() {
	// 填充省下拉列表
	var provincesOptionHtml = "";
	var provinces = [];
	for(var el in provinceAndCityArray) {
		provinces.push(provinceAndCityArray[el].name);
		provincesOptionHtml += "<option value=" + el + ">" + provinceAndCityArray[el].name + "</option>";
	}
	$("#selectProvince").append(provincesOptionHtml);
	
	// 填充城市下拉列表
	$("#selectProvince").bind("change", function() {
		var selectedProvince = $("#selectProvince :selected").val();
		if(selectedProvince != -1) {
			var citiesOptionHtml = "";
			var cities = [];
			cities = provinceAndCityArray[selectedProvince].cities;
			for(var elCity in cities) {
				citiesOptionHtml += "<option value=" + elCity + ">" + cities[elCity] + "</option>";
			}
			// 清空之前的城市列表
			$("#selectCity option[value!=-1]").remove();
			$("#selectCity option[value=-1]").attr("selected", true);
			$("#selectCity").append(citiesOptionHtml);
			$("#selectCity").selectmenu("refresh");
		}
	});
});

 
 

  • 大小: 34.5 KB
  • 大小: 77.9 KB
分享到:
评论

相关推荐

    前端+jQuery+实现烟花特效

    前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+...

    jQuery+ASP+SQL实现二级联动下拉菜单

    jQuery+ASP+SQL实现二级联动下拉菜单 全国省市数据库可以从网上Down个合适的导入一下就可以了. /**************************** * Author:蓝客密探 * Blog:www.lanke.me * Forum:www.phpdn.cn 详细介绍页面:...

    Struts2+jQuery+ajax+mySql实现省市二级联动

    总的来说,结合Struts2、jQuery、ajax和MySQL,我们可以实现高效、流畅的省市二级联动效果,提供用户友好的Web界面。这四个技术的协同工作展示了现代Web开发中前后端交互的基本模式,对于任何想要学习Web开发的人来...

    jQuery+CSS3实现动画相册代码.rar

    jQuery+CSS3实现动画相册代码.rar jQuery+CSS3实现动画相册代码.rar jQuery+CSS3实现动画相册代码.rar jQuery+CSS3实现动画相册代码.rar jQuery+CSS3实现动画相册代码.rar jQuery+CSS3实现动画相册代码.rar jQuery+...

    非常酷炫的jQuery+css超滑二级下拉菜单

    而二级下拉菜单更是常见于大型网站,以有效地组织和展示多层次的页面结构。本资源"非常酷炫的jQuery+css超滑二级下拉菜单"正是针对这一需求,提供了一种既美观又流畅的解决方案。 首先,jQuery是一种轻量级、高性能...

    SSH+jQuery+json 实现的Ajax操作,绝对精华,代码简练清晰,绝对能看明白

    Ajax级联操作通常涉及多个下拉列表,当用户在第一个列表中选择一项时,通过Ajax请求获取与之相关的第二级列表数据,更新第二个列表。在这个案例中,"cityJson"可能是城市数据的JSON文件,包含各个城市的ID和名称。当...

    jQuery+ajax实现三级级联

    在这个“jQuery+ajax实现三级级联”的实例中,我们主要探讨如何利用这两种技术来创建一个能够逐级联动的下拉菜单系统,这在数据筛选和表单填写中十分常见,如地区选择、部门分类等场景。 首先,jQuery是一个轻量级...

    jQuery全能权威指南:jQuery Core+jQuery Plugin+jQuery UI+jQuery Mobile 源码

    《jQuery全能权威指南:jQuery Core+jQuery Plugin+jQuery UI+jQuery Mobile》的阅读对象是具有一些HTML 、CSS和JavaScript知识的开发者,内容覆盖了jQuery知识体系的全部内容,包括jQuery Core、jQuery Plugin 、...

    jquery+css实现横向二级下拉菜单

    本教程将深入探讨如何使用jQuery和CSS技术实现一个流畅且效果出色的横向二级下拉菜单。 首先,我们需要理解jQuery和CSS在创建这种菜单中的作用。jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理以及...

    Sql+Jquery+Ajax实现省市县区无刷新动态联动查询

    在IT领域,尤其是在Web开发中,"Sql+Jquery+Ajax实现省市县区无刷新动态联动查询"是一个常见的需求,它涉及到数据库操作、前端交互以及页面动态更新等多个关键环节。以下将详细介绍这一技术栈的工作原理及实现方法。...

    jQuery+bootstrap响应式二级下拉导航菜单代码.rar

    "jQuery+bootstrap响应式二级下拉导航菜单代码"是一个专为企业级网站设计的解决方案,尤其适用于那些希望提供优化移动端用户体验的站点。这个压缩包包含了一套完整的、能够自适应不同设备屏幕大小的二级下拉导航菜单...

    jquery+css实现的简洁二级网站菜单

    "jquery+css实现的简洁二级网站菜单"这个项目展示了如何利用这两种强大的技术来创建一个高效且易于导航的网页菜单。jQuery,一个JavaScript库,简化了DOM操作、事件处理以及动画效果;而CSS则负责页面的样式和布局。...

    前端jquery+后端servlet实现三级联动项目省市区

    这个项目“前端jquery+后端servlet实现三级联动项目省市区”就是一个典型的案例,它展示了如何利用jQuery在前端处理用户交互,以及如何通过Servlet在后端进行数据处理和传输。下面我们将详细探讨这个项目中的关键...

    jquery + servlet实现省市联动二级菜单

    本话题聚焦于“jquery + servlet实现省市联动二级菜单”这一技术实践,这是一个常见的前端与后端协同工作的场景,主要用于提升用户体验,使得用户在选择省份时,市一级的下拉菜单能实时更新为相应省份的城市。...

    基于jquery+json的通用三级联动下拉列表.rar

    3. **jQuery初始化**:加载页面后,使用jQuery解析JSON数据并填充第二级和第三级下拉列表的初始选项。 4. **事件绑定**:为第一个下拉列表绑定`change`事件,当选项改变时,使用jQuery获取新的选中值,遍历JSON数据...

    ssh+jquery+ajax二级联动

    在这个"ssh+jquery+ajax二级联动"项目中,开发者可能创建了一个简单的Web应用,实现了基于Ajax的二级联动选择功能。这通常在多级下拉菜单或地区选择等场景中常见,例如:省份选择后,城市列表会动态加载更新。 1. *...

    【ASP.NET编程知识】jQuery+Asp.Net实现省市二级联动功能的方法.docx

    ASP.NET 编程知识 - jQuery+Asp.Net 实现省市二级联动功能的方法 本文主要讲述了使用 jQuery 和 Asp.Net 实现省市二级联动功能的方法,涵盖了 HTML、CSS、JavaScript 和 Asp.Net 等技术的应用。 HTML 部分 在 ...

    jquery+ajax+json省市区三级联动

    这里我们探讨的主题是“jquery+ajax+json省市区三级联动”,这个功能利用jQuery库的便捷性,结合AJAX异步数据交换,以及JSON数据格式来实现动态地加载和更新省市区的选项。 首先,jQuery是一个强大的JavaScript库,...

    jquery二级联动下拉列表

    下面我们将深入探讨如何利用jQuery实现二级联动下拉列表。 首先,我们需要了解什么是二级联动下拉列表。它是由两个或多个下拉列表组成,当用户在一个下拉列表中选择一个选项时,另一个下拉列表的内容会根据前者的选...

    php+mysql+jquery省市区三级联动

    本项目“php+mysql+jquery省市区三级联动”是实现这一功能的一个实例,结合了后端PHP、数据库MySQL以及前端jQuery技术,提供了一个完整的解决方案。 首先,我们来看前端部分,这里使用的是jQuery库。jQuery是一个...

Global site tag (gtag.js) - Google Analytics