JavaScript實現二級聯動下拉框
Javascript是一種由Netscape的LiveScript發展而來的原型化繼承的面向對象的動態類型的區分大小寫的客戶端腳本語言,主要目的是為了解決服務器端語言,比如Perl,遺留的速度問題,為客戶提供更流暢的瀏覽效果。
這個是簡單也是最基本的聯動下拉框的示例,這個示例主要針對那些只有二級聯動,且***級是固定的選項,第二級的內容也比較簡單。這里使用了javascript來聯動第二級下拉框 。
顯示代碼打印
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 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;
通過本文的介紹,希望能給你帶來幫助。關于其他下拉框聯動的問題,將在后續章節中繼續介紹,敬請關注。
【編輯推薦】