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 相关文章推荐
JavaScript中的History历史对象
Jan 16 Javascript
iframe 上下滚动条如何默认在下方实现原理
Dec 10 Javascript
图片延迟加载的实现代码(模仿懒惰)
Mar 29 Javascript
JS获取url链接字符串 location.href
Dec 23 Javascript
js document.write()使用介绍
Feb 21 Javascript
js实现网页抽奖实例
Aug 05 Javascript
归纳下js面向对象的几种常见写法总结
Aug 24 Javascript
Bootstrap菜单按钮及导航实例解析
Sep 09 Javascript
Angular在模板驱动表单中自定义校验器的方法
Aug 09 Javascript
React中上传图片到七牛的示例代码
Oct 10 Javascript
vue双向数据绑定知识点总结
Apr 18 Javascript
css配合JavaScript实现tab标签切换效果
Oct 11 Javascript
自己写了一个展开和收起的多更能型的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 时间time与日期date之间的使用详解及区别
2016/11/07 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
PHP接口继承及接口多继承原理与实现方法详解
2017/10/18 PHP
javascript 面向对象编程 function也是类
2009/09/17 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
JavaScript中的面向对象介绍
2012/06/30 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
jquery获取所有选中的checkbox实现代码
2016/05/26 Javascript
深入理解js函数的作用域与this指向
2016/05/28 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
js原生实现FastClick事件的实例
2016/11/20 Javascript
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
Vue.js实现分页查询功能
2020/11/15 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
讲解python参数和作用域的使用
2013/11/01 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
对Python实现累加函数的方法详解
2019/01/23 Python
Django之创建引擎索引报错及解决详解
2019/07/17 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
HTML5 Video标签的属性、方法和事件汇总介绍
2015/04/24 HTML / CSS
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
医学院学生求职简历的自我评价
2013/10/24 职场文书
生物专业个人自荐信范文
2013/11/29 职场文书
营销人才自我鉴定范文
2013/12/25 职场文书
外企财务年会演讲稿
2014/01/03 职场文书
优秀求职信范文分享
2014/01/26 职场文书
公司请假条范文
2014/04/11 职场文书
安全教育演讲稿
2014/05/09 职场文书
活动倡议书范文
2014/05/13 职场文书
2015年乡镇人大工作总结
2015/04/22 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
2016年小学党支部创先争优活动总结
2016/04/05 职场文书
Spring mvc是如何实现与数据库的前后端的连接操作的?
2021/06/30 Java/Android
Java 写一个简单的图书管理系统
2022/04/26 Java/Android