二级联动敲一遍 认真的敲一遍就会了 不难 以小化大 把大问题化简成小问题
(1)二级菜单初始化
当网页加载完成,将arr_province中的数据写入到name=province下拉列表中。
name=city下拉列表数据,要根据name=province列表的默认选择(selectedIndex)而改变。
(2)根据name=province的选择,来改变name=city中的内容
当改变时,获取选择中的省份的索引值。
城市列表,会根据传递过来的索引值,请取对应的二维数组中的数据,并写入city列表中。
<script type="text/javascript">
var arr_province = ["请选择省/城市","北京市","上海市","天津市","重庆市","深圳市","广东省"];
var arr_city = [
["请选择城市/地区"],
["东城区","西城区","朝阳区","宣武区","昌平区","大兴区","丰台区","海淀区"],
['宝山区','长宁区','丰贤区', '虹口区','黄浦区','青浦区','南汇区','徐汇区','卢湾区'],
['和平区', '河西区', '南开区', '河北区', '河东区', '红桥区', '塘古区', '开发区'],
['俞中区', '南岸区', '江北区', '沙坪坝区', '九龙坡区', '渝北区', '大渡口区', '北碚区'],
['福田区', '罗湖区', '盐田区', '宝安区', '龙岗区', '南山区', '深圳周边'],
['广州市','惠州市','汕头市','珠海市','佛山市','中山市','东莞市']
];
//网页加载完成,初始化二级菜单
window.onload = init; //传地址,不带括号
function init()
{
//获取name=province和name=city的对象
var province = document.form1.province;
var city = document.form1.city;
//指定省份下拉中<option>标记的个数
province.length = arr_province.length;
//循环将arr_province中的数据写入到<option>标记中
for(var i=0;i<arr_province.length;i++)
{
province.options[i].text = arr_province[i];
province.options[i].value = arr_province[i];
}
//修改省份列表中默认选择项
var index = 0;
province.selectedIndex = index;
//指定城市下拉中<option>标记的个数
city.length = arr_city[index].length;
//循环将arr_city中对应的数据写入到<option>标记中
for(var j=0;j<arr_city[index].length;j++)
{
city.options[j].text = arr_city[index][j];
city.options[j].value = arr_city[index][j];
}
}
function changeSelect(index)
{
//获取name=city的对象
var city = document.form1.city;
//指定城市下拉中<option>标记的个数
city.length = arr_city[index].length;
//循环将arr_city中对应的数据写入到<option>标记中
for(var j=0;j<arr_city[index].length;j++)
{
city.options[j].text = arr_city[index][j];
city.options[j].value = arr_city[index][j];
}
}
</script>
</head>
<body>
<form name="form1" method="post" action="login.php">
省份:<select name="province" onchange="changeSelect(this.selectedIndex)"></select>
城市:<select name="city"></select>
</form>