javascript实现省市级联效果
来源:互联网 发布:程序员应届生个人简历 编辑:程序博客网 时间:2024/06/09 17:34
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>省市级联</title>
<script type="text/javascript">
var provinces = new Array();//定义一个省份数组
provinces[0] = ["00","-选择省份-"];
provinces[1] = ["01","北京市"];//01为北京代号
provinces[2] = ["02","辽宁省"];//02为辽宁代号
provinces[3] = ["03","山西省"];
var citys = new Array();//定义城市数组
citys[0] = ["0101","北京市"];
citys[1] = ["0201","沈阳市"];//02**为辽宁的城市代号
citys[2] = ["0202","大连市"];
citys[3] = ["0203","铁岭市"];
citys[4] = ["0301","太原市"];//03**为山西的城市代号
citys[5] = ["0302","大同市"];
citys[6] = ["0303","运城市"];
function fillProvince(){//添加省份方法
var province = document.getElementById("sheng");
for(var i=0;i<provinces.length;i++){
//创建一个Option对象并赋text值和value值
var option = new Option(provinces[i][1],provinces[i][0]);
//将该对象加入province(省份)数组中
//add(new,old)new表示新添加到old之前的对象,如果old为null,则添加到<select>末尾
province.add(option,null);
}
province.options[0].selected = true;//将第一个Option对象设置为选中状态。
}
function changeCity(){//选择城市方法
//获取省份
var province = document.getElementById("sheng");
//获取省的代号(provinceCode)
var provinceCode = province.options[province.selectedIndex].value;
//获取城市
var city = document.getElementById("shi");
//清除当前city中的选项
city.options.length = 0;
//添加默认Option对象
city.add(new Option("-选择城市-","0000"),null);
//通过代号分别添加对应的城市
for(var i=0; i<citys.length;i++){
if(citys[i][0].substring(0,2)==provinceCode){//判断城市的前两位代号与省份代号是否相同
city.add(new Option(citys[i][1],citys[i][0]),null);//相同则添加该Option对象,即城市
}
}
city.options[1].selected = true;//将对应的第一个城市设置为选中状态
}
</script>
</head>
<body>
<form>
<select id="sheng" onchange="changeCity()">
<script type="text/javascript">fillProvince()</script>
</select>
<select id="shi">
<option value="0000" selected="selected">-选择城市-</option>
</select>
</form>
</body>
</html>