JS二级联动



<HTML>

  <HEAD>

  <TITLE> New Document </TITLE>

   <script language="JavaScript" type="text/javascript">

    //定義了城市的二維數組,裏面的順序跟省份的順序是相同的。通過selectedIndex獲得省份的下標值來得到相應的城市數組

     var city=[

     ["北京","天津","上海","重慶"],

     ["南京","蘇州","南通","常州"],

     ["福州","福安","龍巖","南平"],

     ["廣州","潮陽","潮州","澄海"],

     ["蘭州","白銀","定西","敦煌"]

   ];

     function getCity(){

        //獲得省份下拉框的對象

        var sltProvince=document.form1.province;

         //獲得城市下拉框的對象

         var sltCity=document.form1.city;

        //得到對應省份的城市數組

        var provinceCity=city[sltProvince.selectedIndex - 1];

         //清空城市下拉框,僅留提示選項

         sltCity.length=1;

         //將城市數組中的值填充到城市下拉框中

       for(var i=0;i<provinceCity.length;i++){

            sltCity[i+1]=new Option(provinceCity[i],provinceCity[i]);

 </script>

 </HEAD>

 <BODY>

 <FORM METHOD=POST ACTION="" name="form1">

       <SELECT NAME="province" onChange="getCity()">

           <OPTION VALUE="0">請選擇所在省份 </OPTION>

            <OPTION VALUE="直轄市">直轄市 </OPTION>

            <OPTION VALUE="江蘇省">江蘇省 </OPTION>

             <OPTION VALUE="福建省">福建省 </OPTION>

             <OPTION VALUE="廣東省">廣東省 </OPTION>

             <OPTION VALUE="甘肅省">甘肅省 </OPTION>

       </SELECT>

       <SELECT NAME="city">

            <OPTION VALUE="0">請選擇所在城市 </OPTION>

        </SELECT>

    </FORM>

 </BODY>

</HTML>

這段代碼比較簡單。

如果對js不大熟悉,可以看看下面關於js處理select對象的內容:

1、使用selectedIndex屬性獲取當前選項的索引

     下拉框的選項是一個綫性數組,每個選項都有一個索引,selectedIndex表示當前被選中的選項的索引號。結合options屬性,可以得到被選中 的option對象,從而對其做進一步的處理。當下拉框可多選時,selectedIndex屬性返回第一個被選中的索引。

    selectedIndex是個只讀的屬性,想把通過索引指定的下拉框的項設置爲選中狀態,可以設置option對象的selected=true來實現。

2、爲select對象添加一個選項

    sltCity[i+1]=new Option(provinceCity[i],provinceCity[i]);

     new Option(provinceCity[i],provinceCity[i])表示創建一個值爲provinceCity[i],文本爲 provinceCity[i]的option對象,sltCity是頁面上的city對象,i+1指定新添選項的位置。

3、清空一個select對象

    要將下拉框的所有選項刪除有兩種方法,

    第一種方法就是遍歷刪除:

 var l=myselect.length;

 for(var i=0;i<l;i++){

    myselect.options[i]=null;

    第二種方法比較簡單,因此一般都使用此方法:

myselect.length=0;

下面是我寫的另一種實現下拉框聯動的方法:

js代碼如下:

<script>
          var town =[[1,'anhui'],[2,'jiangsu'],[3,'zhejiang'],[4,'shanghai']];
          var city = [[1,1,'maanshan'],[1,2,'huaibei'],[1,3,'wuhu'],[2,4,'xuzhou'],[2,5,'najing'],[3,6,'jiaxing'],,7,'wuxi'],

      [4,8,'shanghai']]

function viewTown(){
           var townView = document.getElementById("town");
          for (var i = 0;i < town.length ;i++ ){
              townView[i+1] = new Option(town[i][1],town[i][0]);
          }
      }

function selectTown(obj){
          var cityView = document.getElementById("city");
          cityView.length=1;
          for (var i = 0;i < city.length ;i++ ){
              if (city[i][0]==obj.value){
                  codeCity=new Option(city[i][2],city[i][1]);
                  cityView.options.add(codeCity);
               }
          }
  }
 </script>

html中有兩個下拉框:

 <BODY οnlοad="viewTown()">
            <select id="town" οnchange="selectTown(this)"></select>
            <select id="city"></select>
       </BODY>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值