<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 onload="viewTown()">
<select id="town" onchange="selectTown(this)"></select>
<select id="city"></select>
</BODY>