用jquery写的json省市县三级联动下拉
2024-08-27 10:16:11
<form action="#" name="myform">
<label>省</label><select name="provice" id="provice"><option value="-1">请输入省份</option></select>
<label>市</label><select name="city" id="city"><option value="-1">请输入城市</option></select>
<label>县</label><select name="locale" id="locale"><option value="-1">请输入区县</option></select>
</form>
2. 定义json数据源:
var jsonData = [{
treeNode : '请输入省份',
value : -1,
childNode : [{
treeNode : '请输入城市',
value : -1,
childNode : [{
treeNode : '请输入区县',
value : -1,
childNode : []
}]
}]
},{
treeNode : '北京',
value : 1,
childNode : [{
treeNode : '东城区',
value : 11,
childNode : []
},{
treeNode : '西城区',
value : 12,
childNode : []
}]
},{
treeNode : '广西壮族自治区',
value : 2601,
childNode : [{
treeNode : '南宁',
value : 6653,
childNode : [{
treeNode : '横县',
value : 10799,
childNode : []
}, {
treeNode : '宾阳县',
value : 10800,
childNode : []
}]
}]
}]
3. javascript代码:
function initCountry(){
var provice = $("#provice");
var city = $("#city");
var locale = $("#locale");
var proviceStr = "";
$.each(<span style="color:#FF0000;">jsonData</span>,function(index,items){
proviceStr += "<option value='"+jsonData[index].value+"'>"+jsonData[index].treeNode+"</option>";
});
provice.empty().append(proviceStr);
provice.bind("change",function(){
if($(this).find(":selected").attr("value") == -1){
city.empty().append("<option value='-1'>请输入区县</option>");
}
});
provice.bind("change",function(){
var cityStr = '';
var index = provice.find(":selected").index();
$.each(jsonData[index].childNode,function(index,items){
city.empty();
cityStr += "<option value='"+items.value+"'>"+items.treeNode+"</option>";
city.append(cityStr);
})
changeLocale();
});
city.bind("change",changeLocale);
function changeLocale(){
var localeStr = '';
var index = provice.find(":selected").index();
var index2 = city.find(":selected").index();
$.each(jsonData[index].childNode[index2].childNode,function(index,items){
locale.empty();
localeStr += "<option value='"+items.value+"'>"+items.treeNode+"</option>";
locale.append(localeStr);
})
if(localeStr == ''){
locale.empty();
locale.append("<option value='-11'>请输入区县</option>");
}
}
}
$(function(){
initCountry(); })
最新文章
- Java线程操作方法
- 界面排版-TableLayout的stretchColumns方法
- Activiti系列: 如何添加自定义表单引擎
- org.hibernate.PropertyValueException: not-null property references a null or transient value:
- Python之配置文件模块 ConfigParser
- ASP函数大全
- 230. Kth Smallest Element in a BST ——迭代本质:a=xx1 while some_condition: a=xx2
- mysql初学
- 【阿里云产品公测】ACE安装wordpress博客图文教程
- 【转】Java 内部类种类及使用解析
- java_web学习(2)Servlet
- gradle根据不同渠道设置不同的开屏启动页
- form转化json
- java json字符串与对象转换
- hdu1573-X问题-(扩展欧几里得定理+中国剩余定理)
- mssql借助链接服务器进行数据快速迁移
- php连接mysql...mysqli和mysql
- 51nod1482
- UGUI双击事件
- Classifier
热门文章
- (转)Centos7.2 给grub菜单做加密
- Nginx 配置跨域权限
- (转)Unity 之 UGUI 小总结
- 从零开始写C# MVC框架之--- 配置log4日志
- git打补丁、还原补丁
- 亲测,很有效的忽略SSL证书方法
- 前端给div加滚动条样式修改
- CSS中关于linebox的baseline位置移动的理解
- SVNKit学习——使用High-Level API管理Working Copy示例(六)
- <;meta name=";viewport"; content=";width=device-width, initial-scale=1.0";>;理解