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实现上传图片前的预览(TX的面试题)
Aug 20 Javascript
createElement动态创建HTML对象脚本代码
Nov 24 Javascript
jQuery基本过滤选择器使用介绍
Apr 18 Javascript
jquery简单的拖动效果实现原理及示例
Jul 26 Javascript
用jquery.sortElements实现table排序
May 04 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
Mar 03 Javascript
使用jquery给指定的table动态添加一行、删除一行
Oct 13 Javascript
AngularJS开发教程之控制器之间的通信方法分析
Dec 25 Javascript
vue-自定义组件传值的实例讲解
Sep 18 Javascript
vue实现抖音时间转盘
Sep 08 Javascript
Ant Design的Table组件去除
Oct 24 Javascript
什么是SOLID
Mar 24 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常用image图像函数集
2013/06/24 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
JQuery UI皮肤定制
2009/07/27 Javascript
jquery.jstree 增加节点的双击事件代码
2010/07/27 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
通过action传过来的值在option获取进行验证的方法
2013/11/14 Javascript
jquery衣服颜色选取插件效果代码分享
2015/08/28 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
Bootstrap布局之栅格系统学习笔记
2017/05/04 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
python自动安装pip
2014/04/24 Python
在Windows8上的搭建Python和Django环境
2014/07/03 Python
在GitHub Pages上使用Pelican搭建博客的教程
2015/04/25 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
python英语单词测试小程序代码实例
2019/09/09 Python
Python Numpy 自然数填充数组的实现
2019/11/28 Python
解决django接口无法通过ip进行访问的问题
2020/03/27 Python
利用CSS3的线性渐变linear-gradient制作边框的示例
2016/06/02 HTML / CSS
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
高中语文课后反思
2014/04/27 职场文书
司法局群众路线教育实践活动开展情况总结
2014/10/25 职场文书
师德师风个人总结
2015/02/06 职场文书
节约用电倡议书
2015/04/28 职场文书
redis 限制内存使用大小的实现
2021/05/08 Redis