首頁  >  文章  >  web前端  >  最簡單js程式碼實作select二級聯動下拉選單_javascript技巧

最簡單js程式碼實作select二級聯動下拉選單_javascript技巧

WBOY
WBOY原創
2016-05-16 15:05:092096瀏覽

本文實例為大家分享了js實作select二級聯動下拉選單,供大家參考,具體內容如下

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
 <HEAD>
 <TITLE> New Document </TITLE>
 <META NAME="Generator" CONTENT="EditPlus">
 <META NAME="Author" CONTENT="">
 <META NAME="Keywords" CONTENT="">
 <META NAME="Description" CONTENT="">
 <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;

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn