js实现一个省市区三级联动选择框代码分享


Posted in Javascript onMarch 06, 2013

运行效果:
js实现一个省市区三级联动选择框代码分享 
=================================================
部分代码:
=================================================
当然首先你数据库中要有这个table,不然你没有数据.....^_^

<tr> 
<td class="tr pr10 "> 
所在地: 
</td> 
<td class="tl"> 
<input type="hidden" id="myProvince" value="${user.provinceId}"/> 
<input type="hidden" id="myCity" value="${user.cityId}"/> 
<input type="hidden" id="myRegion" value="${user.regionId}"/> 
<select id="provinceSelect" name="user.provinceId"> 
<c:forEach items="${xzqhs}" var="xzqh"> 
<option value="${xzqh.provinceId}" ${user.regionId eq xzqh.provinceId?"selected='selected'":""}>${xzqh.province}</option> 
</c:forEach> 
</select> 
<select id="citySelect" name="user.cityId"> 
</select> 
<select id="regionSelect" name="user.regionId"> 
</select> 
</td> 
<td class="gray"></td> 
</tr>

js代码:
/** 
* 加载市 
* 
*/ 
function loadCity() { 
var provinceId = $("#provinceSelect option:selected").val(); 
if(provinceId == null || provinceId == ""){ 
//alert("找不到省"); 
}else{ 
$.post(rootPath+"/loadCity", { 
"q" : provinceId 
}, function(data, result) { 
if(data == "noId"){ 
alert("请求错误"); 
}else if(data == "null"){ 
alert("系统找不到属于该省的市"); 
}else{ 
data = eval("{" + data + "}"); 
var citySelect = $("#citySelect"); 
var myCity = $("#myCity").val(); 
citySelect.html(""); 
for ( var i = 0; i < data.length; i++) { 
if(myCity != null && myCity != "" && myCity > 0 && myCity == data[i].id){ 
citySelect.append("<option selected='selected' value='" + data[i].id + "'>" 
+ data[i].name + "</option>"); 
}else{ 
citySelect.append("<option value='" + data[i].id + "'>" 
+ data[i].name + "</option>"); 
} 
} 
loadRegion(); 
} 
}); 
} 
}; 
/** 
* 加载区 
* 
*/ 
function loadRegion() { 
var cityId = $("#citySelect option:selected").val(); 
if(cityId == null || cityId == "" || cityId < 1){ 
alert("找不到市"); 
}else{ 
$.post(rootPath+"/loadRegion", { 
"q" : cityId 
}, function(data, result) { 
if(data == "noId"){ 
alert("请求错误"); 
}else if(data == "null"){ 
alert("系统找不到属于该市的区"); 
}else{ 
data = eval("{" + data + "}"); 
var regionSelect = $("#regionSelect"); 
var myRegion = $("#myRegion").val(); 
regionSelect.html(""); 
for ( var i = 0; i < data.length; i++) { 
if(myRegion != null && myRegion != "" && myRegion > 0 && myRegion == data[i].id){ 
regionSelect.append("<option selected='selected' value='" + data[i].id + "'>" 
+ data[i].name + "</option>"); 
}else{ 
regionSelect.append("<option value='" + data[i].id + "'>" 
+ data[i].name + "</option>"); 
} 
} 
} 
}); 
} 
}; 
/** 
* 省改变事件 
* 
*/ 
$("#provinceSelect").change(loadCity); 
/** 
* 市改变事件 
* 
*/ 
$("#citySelect").change(loadRegion); $(function() { 
loadCity(); 
});

后台方法:
/** 
* 加载城市数据 
* 
*/ 
public void loadCity() { 
if (q == null || q.trim().equals("")) { 
write("noId"); 
} else { 
List<Xzqh> citys = xzqhService.queryCitys(q.trim()); 
if (citys == null || citys.size() < 1) { 
write("null"); 
} else { 
StringBuilder builder = new StringBuilder("["); 
for (Xzqh city : citys) { 
builder.append("{'id':'"); 
builder.append(city.getCityId()); 
builder.append("','name':'"); 
builder.append(city.getCity()); 
builder.append("'},"); 
} 
if (builder.length() > 1) 
builder.replace(builder.length() - 1, builder.length(), "]"); 
write(builder.toString()); 
} 
} 
} 
/** 
* 加载区数据 
* 
*/ 
public void loadRegion() { 
if (q == null || q.trim().equals("")) { 
write("noId"); 
} else { 
List<Xzqh> citys = xzqhService.queryDistricts(q.trim()); 
if (citys == null || citys.size() < 1) { 
write("null"); 
} else { 
StringBuilder builder = new StringBuilder("["); 
for (Xzqh district : citys) { 
builder.append("{'id':'"); 
builder.append(district.getRegionId()); 
builder.append("','name':'"); 
builder.append(district.getRegion()); 
builder.append("'},"); 
} 
if (builder.length() > 1) 
builder.replace(builder.length() - 1, builder.length(), "]"); 
write(builder.toString()); 
} 
} 
}
Javascript 相关文章推荐
各浏览器对click方法的支持差异小结
Jul 31 Javascript
封装了jQuery的Ajax请求全局配置
Feb 05 Javascript
关于延迟加载JavaScript
May 05 Javascript
AngularJs页面筛选标签小功能
Aug 01 Javascript
详细总结Javascript中的焦点管理
Sep 17 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
Dec 26 Javascript
Node.js开发第三方微信公众平台
Jun 05 Javascript
使用javaScript实现鼠标拖拽事件
Apr 03 Javascript
jquery将信息遍历到界面上实例代码
Jan 21 jQuery
详解node.js 事件循环
Jul 22 Javascript
js实现简易拖拽的示例
Oct 26 Javascript
Vue如何跨组件传递Slot的实现
Dec 14 Vue.js
自己写了一个展开和收起的多更能型的js效果
Mar 05 #Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
Mar 05 #Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
Mar 05 #Javascript
jQuery 淡入淡出 png图在ie8下有黑色边框的解决方法
Mar 05 #Javascript
根据经纬度计算地球上两点之间的距离js实现代码
Mar 05 #Javascript
js日期时间补零的小例子
Mar 05 #Javascript
6款新颖的jQuery和CSS3进度条插件推荐
Mar 05 #Javascript
You might like
分享PHP守护进程类
2015/12/30 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
Javascript 复制数组实现代码
2009/11/26 Javascript
使用angular写一个hello world
2015/01/23 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
2016/05/31 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
Vuejs2 + Webpack框架里,模拟下载的实例讲解
2018/09/05 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
2018/10/29 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
Django进阶之CSRF的解决
2018/08/01 Python
Python生成器generator用法示例
2018/08/10 Python
python实现决策树分类
2018/08/30 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
Django Admin中增加导出CSV功能过程解析
2019/09/04 Python
Python pickle模块实现对象序列化
2019/11/22 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
2020/03/12 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
Perfume’s Club意大利官网:欧洲美妆电商
2019/05/03 全球购物
Final类有什么特点
2012/04/25 面试题
毕业生的自我鉴定
2013/10/29 职场文书
期终自我鉴定
2014/02/17 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
公司感谢信范文
2015/01/22 职场文书
事业单位财务人员岗位职责
2015/04/14 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android