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 相关文章推荐
爆炸式的JS圆形浮动菜单特效代码
Mar 03 Javascript
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
Mar 07 Javascript
详谈jQuery中的this和$(this)
Nov 13 Javascript
js操作css属性实现div层展开关闭效果的方法
May 11 Javascript
JavaScript中setMonth()方法的使用详解
Jun 11 Javascript
详解JavaScript函数对象
Nov 15 Javascript
Highcharts入门之基本属性
Aug 02 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
Apr 11 Javascript
基于JavaScript实现前端数据多条件筛选功能
Aug 19 Javascript
vue获取验证码倒计时组件
Aug 26 Javascript
vue.js iview打包上线后字体图标不显示解决办法
Jan 20 Javascript
JS中循环遍历数组的四种方式总结
Jan 23 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 缓存实现代码及详细注释
2010/05/16 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
JavaScript下利用fso判断文件是否存在的代码
2010/12/11 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
javascript禁用Tab键脚本实例
2013/11/22 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
jQuery替换textarea中换行的方法
2015/06/10 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
JSON 对象未定义错误的解决方法
2016/09/29 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
详解Vue 2.0封装axios笔记
2017/06/22 Javascript
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
2019/05/20 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
[02:08]什么藏在DOTA2 TI9“小紫本”里?斧王历险记告诉你!
2019/05/17 DOTA
python多进程操作实例
2014/11/21 Python
python实现简单温度转换的方法
2015/03/13 Python
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
python实现的简单窗口倒计时界面实例
2015/05/05 Python
python正则实现提取电话功能
2018/02/24 Python
Python数据处理numpy.median的实例讲解
2018/04/02 Python
python矩阵/字典实现最短路径算法
2019/01/17 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
企业厂务公开实施方案
2014/03/26 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
爱心募捐通知范文
2015/04/27 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书
PyQt5 QThread倒计时功能的实现代码
2021/04/02 Python
Python基于百度API识别并提取图片中文字
2021/06/27 Python