漂亮的省级下拉选择

<style type="text/css">
body{
    margin:10;
    padding:0;
    font-size:12px;
}

</style>
<script src="js/select.js">
 
</script>
</head>

<body>

<form action="" method="post" name="myform">
  <select  id="selProvince" οnchange="changeCity('selProvince','selCity')">
    <script  type="text/javascript">
         /*调用函数自动添加省份选项,产生如下HTML代码的效果*/
          fillProvince("selProvince");
    </script>
    <!-- 
      <option value="00">-选择省份-</option>      
      <option value="01">北京市</option>
       <option value="02">湖北省</option>
       <option value="03">四川省</option>
       ......
     -->
  </select>
   <select  id="selCity">
        <option value="0000" selected="selected">--选择城市--</option>
    </select>
  </form>

</body>
// JavaScript Document

 /*使用二维数组存放省份(一维数组套一维数组来模拟),前2位表示省份编号,城市依靠此编号建立关联,类似数据库的主外键*/
  var provinces=new Array(
                     new Array("00","--选择省份--"),
                     new Array("01","北京市"),
                     new Array("02","湖北省"),
                     new Array("03","四川省"),
                     new Array("04","江苏省"),
                     new Array("05","湖南省")
                     //按此添加其他省份,超过9用两位表示,如:"10","11"
                    );
  
  /*使用二维数组存放城市,和省份的关联依靠前2位的省份编号*/
  var citys=new Array(
                     new Array("0101","北京"), //直辖市特殊,下属只有对应的直辖市
                     new Array("0201","武汉"),  
                     new Array("0202","荆州"), //同理添加湖北省的其他城市,其他省份同理                     new Array("0301","成都"),
                     new Array("0302","绵阳"),
                     new Array("0401","南京"),
                     new Array("0401","苏州"),
                     new Array("0501","长沙"),
                     new Array("0502","株洲")
                     //按此添加其他省份下属城市
                    );

  function fillProvince(provinceID){
      var selProvince=document.getElementById(provinceID);
      /*添加省份,下面使用的是针对下拉框对象的new和add方法和,对于普通元素则需要使用createElement和appendChild方法*/
      for(var i=0;i<provinces.length;i++){
        var option=new Option(provinces[i][1],provinces[i][0]);
          selProvince.add(option,null);   
      }
      
      selProvince.options[0].selected=true;  //设置默认选项:-选择省份-  
}
  
  
 function changeCity(provinceID,cityID){
      var selCity=document.getElementById(cityID);
      selCity.options.length=0;//清空原来的所有选项
      selCity.add(new Option('-选择城市-','0000'),null);
      var selProvince=document.getElementById(provinceID);
      var provinceCode=selProvince.options[selProvince.selectedIndex].value;
      
      /*添加城市,条件是和对应省份关联的城市,同理,下列代码可以使用createElement和appendChild方法代替*/
      for(var i=0;i<citys.length;i++){
        if(citys[i][0].substring(0,2)==provinceCode){
            var optionAdded=new Option(citys[i][1],citys[i][0]);
              selCity.add(optionAdded,null);   
        }
      }
      selCity.options[0].selected=true;  //设置默认选项:-选择城市-  
}

 

转载于:https://www.cnblogs.com/914556495wxkj/p/3426678.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值