1. 程式人生 > >js 二級聯動(轉)

js 二級聯動(轉)

<%@ 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物件 要將下拉框的所有選項刪除有兩種方法, 第一種方法就是遍歷刪除:

  1. var l=myselect.length;  
  2. for(var i=0;i<l;i++){  
  3. myselect.options[i]=null;  
  4. }  

第二種方法比較簡單,因此一般都使用此方法: myselect.length=0;

原文:http://www.poluoluo.com/jzxy/201604/471163.html