手动实践:省份城市的三级联动

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>省份城市的三级联动</title>
    </head>
    <body>
    	<select id="province">
    		<option value="-1">请选择</option> <!-- 由于数组下标从0开始,因此这里的value属性设为-1,避免将其识别为某个地区 -->
    	</select>
    	<select id="city"></select>
    	<select id="country"></select>

    	<script type="text/javascript">
    		var provinceArr = ['上海','江苏','河北'];
    		var cityArr = [
    		['上海市'],
    		['苏州市','南京市','扬州市'],
    		['石家庄','秦皇岛','张家口']
    		];
    		var countryArr = [
    		[
    		['黄浦区','静安区','长宁区','浦东区']
    		],[
    		['虎丘区','吴中区','相城区','姑苏区','吴江区'],['玄武区','秦淮区','建邺区','鼓楼区','浦口区'],['邗江区','广陵区','江都区']
    		],[
    		['长安区','桥西区','新华区','井陉矿区'],['海港区','山海关区','北戴河区','抚宁区'],['桥东区','桥西区','宣化区','下花园区']
    		]
    		];

    		// 省份下拉菜单
    		function createOption(obj, data){
    			for(var i in data){
    				var op = new Option(data[i], i);
    				obj.options.add(op);
    			}
    		}
    		var province = document.getElementById('province');
    		createOption(province,provinceArr);

    		//城市下拉菜单
    		var city = document.getElementById('city');
    		province.onchange = function() {
    			city.options.length = 0;
    			createOption(city,cityArr[province.value]);
    		};

    		//区域下拉菜单
    		var country = document.getElementById('country');
    		city.onchange = function(){
    			country.options.length = 0;
    			createOption(country,countryArr[province.value][city.value]);
    		}

    		//修改省份province的onchange事件
    		province.onchange = function() {
    			city.options.length = 0;
    			createOption(city, cityArr[province.value]);
    			if (province.value >= 0) {
    				city.onchange();		//自动添加城市对应区域下拉菜单
    			} else {
    				country.options.length = 0;		//清空country下的原有option
    			}
    		};
    	</script>
    </body>
</html>

效果图:

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
版本:v1.2 ----------------------------------------------- (C) Oran Day(likecode#gmail.com) ----------------------------------------------- ----------------------------------------------- 文件夹说明: - ChinaRegions_Complained 已编译后的dll - ChinaRegions_Source - 服务器控件源码项目 - html - 演示代码级源测试代码 ----------------------------------------------- ----------------------------------------------- ChinaRegion 文件名:OranChinaRegion.dll 自我说明XML:OranChinaRegion.XML 描述: 中国行政区域二级联系菜单,根据上级行政区加载下级行政区列表 XML数据驱动,可自定义添加、删除,简易更新 支持回发恢复状态,已正确设定行政区可自动选定和加载各级行政区数据 其它说明: 应用网站必须存在行政区域的数据XML文件,默认放于应用页面同级目录的oran/regions下,其中regions.xml为一级行政区数据,其它均为二级行政区数据 可自定义修改XML目录,在web.config/appSettings/ChinaRegionXmlFolderPath 配置,e.g.:/oran/regions 创建实例至少指定 runat 和 ID 属性。 应用: 1.为网站添加DLL引用 引用OranChinaRegion.dll 2.复制XML文件至网站 3.注册控件 e.g.: 4.在您期望的位置插入该控件, e.g.: 5.获取值 ParentRegion 获取或设置一级行政区 ChildRegion 获取或设置二级行政区 e.g: string parRgn = region1.ParentRegion; if (parRgn.Length > 0) Response.Write("您选择的是:" + parRgn); string chdRgn = region1.ChildRegion; if (chdRgn.Length > 0) Response.Write(" - " + chdRgn); 6.减少网络传输量,提高网络传输效率,您可以将XML压缩再应用于实际网站。 7.更多参数请参考自我说明XML。 8.期待您报告BUG:)。 -----------------------------------------------

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值