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 isArray 数组类型检测函数
Oct 08 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
Oct 14 Javascript
javaScript实现浮点数转十六进制字符
Oct 29 Javascript
Javascript判断文件是否存在(客户端/服务器端)
Sep 16 Javascript
js实现jquery的offset()方法实例
Jan 10 Javascript
javascript多行字符串的简单实现方式
May 04 Javascript
javascript插件开发的一些感想和心得
Feb 28 Javascript
JavaScript中Form表单技术汇总(推荐)
Jun 26 Javascript
详解vue项目接入微信JSSDK的坑
Dec 14 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
Jul 19 Javascript
ES6 Iterator接口和for...of循环用法分析
Jul 31 Javascript
vue+element UI实现树形表格
Dec 29 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查询搜索引擎排名位置的代码
2010/01/05 PHP
解析curl提交GET,POST,Cookie的简单方法
2013/06/29 PHP
PHP的变量类型和作用域详解
2014/03/12 PHP
PHP图像裁剪缩略裁切类源码及使用方法
2016/01/07 PHP
PHP 芝麻信用接入的注意事项
2016/12/01 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
javascript模拟php函数in_array
2015/04/27 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
深入理解Javascript中的valueOf与toString
2017/01/04 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
AngularJS实现的省市二级联动功能示例【可对选项实现增删】
2017/10/26 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
vue 组件使用中的一些细节点
2018/04/25 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
vue实现循环切换动画
2018/10/17 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
2019/01/09 jQuery
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
python使用在线API查询IP对应的地理位置信息实例
2014/06/01 Python
python的keyword模块用法实例分析
2015/06/30 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
Python3 中把txt数据文件读入到矩阵中的方法
2018/04/27 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
Python 实现打印单词的菱形字符图案
2020/04/12 Python
python在地图上画比例的实例详解
2020/11/13 Python
利用CSS3实现平移动画效果示例代码
2016/10/12 HTML / CSS
英国优质鞋类专家:Robinson’s Shoes
2017/12/08 全球购物
2016党员干部廉洁自律心得体会
2016/01/13 职场文书