本文實例講述了js實現全國省市二級聯動下拉選擇菜單,分享給大家供大家參考。具體如下:
效果圖:

具體代碼:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文檔</title>
<script type="text/javascript">
//好像不是這樣子
var arr_province = ["請選擇省/城市","北京市","上海市","天津市","重慶市","深圳市","廣東省","河南省"];
var arr_city = [
["請選擇城市/地區"],
["東城區","西城區","朝陽區","宣武區","昌平區","大興區","豐台區","海澱區"],
['寶山區','長寧區','豐賢區', '虹口區','黃浦區','青浦區','南匯區','徐匯區','盧灣區'],
['和平區', '河西區', '南開區', '河北區', '河東區', '紅橋區', '塘古區', '開發區'],
['俞中區', '南岸區', '江北區', '沙坪壩區', '九龍坡區', '渝北區', '大渡口區', '北碚區'],
['福田區', '羅湖區', '鹽田區', '寶安區', '龍崗區', '南山區', '深圳周邊'],
['廣州市','惠州市','汕頭市','珠海市','佛山市','中山市','東莞市'],
['鄭州市']
];
//函數:當省份中的option改變時,城市中的數據應該相應的改變
function select_change(index)
{
var city = document.form1.city;
//根據當前index確定city中要寫入的二維數組是哪一個
city.length = 0;
city.length = arr_city[index].length;
for(var i=0;i<arr_city[index].length;i++)
{
//創建每一個option對象(option標記)
city.options[i].text = arr_city[index][i];
city.options[i].value = arr_city[index][i];
}
}
//函數:給province對象添加option對象,每個option的內容來自於arr_province
function init()
{
//獲取province和city對象
var province = document.form1.province;
var city = document.form1.city;
//指定下拉列表的高度,准備寫入幾個option的標記(很重要)
province.length = arr_province.length; //這句必須有
//循環數組,將數組內容寫入到province中去
for(var i=0;i<arr_province.length;i++)
{
//創建每一個option對象(option標記)
province.options[i].text = arr_province[i];
province.options[i].value = arr_province[i];
}
//指定省份當前的默認選中索引號
var index = 0;
province.selectedIndex = index;
//對象city的內容來自於province的選擇
//我們默認指定一個option,一般是下標為0的那個
city.length = arr_city[index].length;
for(var j=0;j<arr_city[index].length;j++)
{
//創建每一個option對象(option標記)
city.options[j].text = arr_city[index][j];
city.options[j].value = arr_city[index][j];
}
}
</script>
</head>
<body onload="init()">
<form name="form1">
省份:<select name="province" onchange="select_change(this.selectedIndex)" style="width:130px;"></select>
城市:<select name="city"></select>
</form>
</body>
</html>
希望本文所述對大家的javascript程序設計有所幫助。