基于jquery & json的省市区联动代码 - Web前端
作者:98wpeu发布时间:2026-06-22分类:网页前端技术浏览:7

html代码:
复制代码 代码如下:
<!DOCtypeHTML>
<html>
<head>
<metacharset="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 ';
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数据文件:点击下载
相关推荐
- 如何使用jquery动态加载js,css文件实现代码 - Web前端
- jQuery实现点击标题输入详细信息 - Web前端
- jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍 - Web前端
- jQuery用unbind方法去掉hover事件及其他方法介绍 - Web前端
- jQuery使用一个按钮控制图片的伸缩实现思路 - Web前端
- 分享一个我自己写的ToolTip提示插件(附源码) - Web前端
- 使用jquery实现图文切换效果另加特效 - Web前端
- 6款新颖的jQuery和CSS3进度条插件推荐 - Web前端
- jquery post方式传递多个参数值后台以数组的方式进行接收 - Web前端
- JQuery动画和停止动画实例代码 - Web前端
- 网页前端技术排行
-
- 1【第六章】Foundation之按钮和下拉功能 - Web前端
- 2jQuery编写widget的一些技巧分享 - Web前端
- 3在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 4基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 5分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 6jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 7分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 8[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 9JS网页制作实例:标签云 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


