基于jquery & json的省市区联动代码


Posted in Javascript onJune 26, 2012

效果演示:

基于jquery & json的省市区联动代码

html代码:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8" /> 
<title>省市区联动</title> 
<script src="/Scripts/jquery.min.js" type="text/javascript"></script> 
<script src="/Scripts/script.js" type="text/javascript"></script> 
</head> 
<body> 
<h2>Demo:</h2> 
<select id="province"> 
<option value="0">请选择省份</option> 
</select> 
<select id="city"> 
<option value="0">请选择城市</option> 
</select> 
<select id="district"> 
<option value="0">请选择区县</option> 
</select> <!--下列为初始值(可选,编辑表单时设置)--> 
<input type="hidden" value="440000" id="pre_province"/> 
<input type="hidden" value="440500" id="pre_city"/> 
<input type="hidden" value="440511" id="pre_district"/> 
</body> 
</html>

script.js代码:

/* 
author: elycir 
create: 2012-06 
description: 省市区三级(二级)联动 
*/ 
$(function () { 
var citySelector = function () { 
var province = $("#province"); 
var city = $("#city"); 
var district = $("#district"); 
var preProvince = $("#pre_province"); 
var preCity = $("#pre_city"); 
var preDistrict = $("#pre_district"); 
var jsonProvince = "/content/json-array-of-province.js"; 
var jsonCity = "/content/json-array-of-city.js"; 
var jsonDistrict = "/content/json-array-of-district.js"; 
var hasDistrict = true; 
var initProvince = "<option value='0'>请选择省份</option>"; 
var initCity = "<option value='0'>请选择城市</option>"; 
var initDistrict = "<option value='0'>请选择区县</option>"; 
return { 
Init: function () { 
var that = this; 
that._LoadOptions(jsonProvince, preProvince, province, null, 0, initProvince); 
province.change(function () { 
that._LoadOptions(jsonCity, preCity, city, province, 2, initCity); 
}); 
if (hasDistrict) { 
city.change(function () { 
that._LoadOptions(jsonDistrict, preDistrict, district, city, 4, initDistrict); 
}); 
province.change(function () { 
city.change(); 
}); 
} 
province.change(); 
}, 
_LoadOptions: function (datapath, preobj, targetobj, parentobj, comparelen, initoption) { 
$.get( 
datapath, 
function (r) { 
var t = ''; // t: html容器 
var s; // s: 选中标识 
var pre; // pre: 初始值 
if (preobj === undefined) { 
pre = 0; 
} else { 
pre = preobj.val(); 
} 
for (var i = 0; i < r.length; i++) { 
s = ''; 
if (comparelen === 0) { 
if (pre !== "" && pre !== 0 && r[i].code === pre) { 
s = ' selected=\"selected\" '; 
pre = ''; 
} 
t += '<option value=' + r[i].code + s + '>' + r[i].name + '</option>'; 
} 
else { 
var p = parentobj.val(); 
if (p.substring(0, comparelen) === r[i].code.substring(0, comparelen)) { 
if (pre !== "" && pre !== 0 && r[i].code === pre) { 
s = ' selected=\"selected\" '; 
pre = ''; 
} 
t += '<option value=' + r[i].code + s + '>' + r[i].name + '</option>'; 
} 
} } 
if (initoption !== '') { 
targetobj.html(initoption + t); 
} else { 
targetobj.html(t); 
} 
}, 
"json" 
); 
} 
}; 
} (); 
citySelector.Init(); 
});

省市区json数据文件:点击下载
Javascript 相关文章推荐
Jquery.Form 异步提交表单的简单实例
Mar 03 Javascript
Express作者TJ告别Node.js奔向Go
Jul 14 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
May 09 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
Nov 25 Javascript
JS中对数组元素进行增删改移的方法总结
Dec 15 Javascript
Angular2 之 路由与导航详细介绍
May 26 Javascript
angular select 默认值设置方法
Jun 23 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
Jun 28 jQuery
深入浅析Vue.js中 computed和methods不同机制
Mar 22 Javascript
微信小程序实现聊天对话(文本、图片)功能
Jul 06 Javascript
使用Typescript开发微信小程序的步骤详解
Jan 12 Javascript
javascript函数式编程基础
Sep 15 Javascript
jquery命令汇总,方便使用jquery的朋友
Jun 26 #Javascript
Jvascript学习实践案例(开发常用)
Jun 25 #Javascript
来自国外的30个基于jquery的Web下拉菜单
Jun 22 #Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
Jun 22 #Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
Jun 22 #Javascript
javascript作用域容易记错的两个地方分析
Jun 22 #Javascript
基于Jquery实现的一个图片滚动切换
Jun 21 #Javascript
You might like
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
js取整数、取余数的方法
2014/05/11 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
2016/10/27 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
2017/02/22 Javascript
vue中七牛插件使用的实例代码
2017/07/28 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
2018/04/20 Javascript
vue 引用自定义ttf、otf、在线字体的方法
2019/05/09 Javascript
微信小程序版本自动更新的方法
2019/06/14 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
[03:02]2020完美世界城市挑战赛(秋季赛)总决赛回顾
2021/03/11 DOTA
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
安装Python和pygame及相应的环境变量配置(图文教程)
2017/06/04 Python
python3+PyQt5泛型委托详解
2018/04/24 Python
Ubuntu下使用python读取doc和docx文档的内容方法
2018/05/08 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
css3闪亮进度条效果实现思路及代码
2013/04/17 HTML / CSS
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
中文专业毕业生自荐信
2013/10/28 职场文书
林肯就职演讲稿
2014/05/19 职场文书
关于美容院的活动方案
2014/08/14 职场文书
党员转正党支部意见
2015/06/02 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
写给汽车4S店的创业计划书,拿来即用!
2019/08/09 职场文书
vue实现无缝轮播效果(跑马灯)
2021/05/14 Vue.js
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python