<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
var province=["北京","上海","福建","江苏"]
var city_2=["福州","泉州","厦门"]
var city_3=["南京","苏州"]
var county_2_0=["台江","鼓楼","仓山","闽侯"]
var county_2_1=["晋江","石狮","惠安"]
var county_2_2=["思明","湖里","集美"]
var county_3_0=["玄武","秦淮"]
var county_3_1=["姑苏","吴中"]
function init() {
for (var i=0;i<province.length;i++)
{
document.myform.province.options[i]=new Option(province[i],i);
}
document.myform.province.onchange = new Function("change(this)");
}
function change(obj){ //obj代表对象,obj.value代表对象的值。这里的obj代表province
pro=obj.value;//pro代表省份的编码值
city=eval('city_'+pro)
if(pro<2){
document.myform.city.options[pro].length=0;
document.myform.county.options[pro].length=0;
}
if(pro>=2){
for (var i = 0; i < city.length; i++) {
document.myform.city.options[i] =new Option(city[i], i);
}
}
document.myform.city.onchange = new Function("changecounty(this)");
}
function changecounty(ci) {
cit=ci.value;//pro代表城市的编码值
county=eval('county_'+pro+'_'+cit)
for (var i = 0; i < county.length;i++) {
document.myform.county.options[i] =new Option(county[i], i);
}
}
</script>
</head>
<body onload="init()">
<form action="ok.html" method="post" name="myform">
<select name="province" id="province">
</select>省
<select name="city" id="city">
<option value=""></option>
</select> 市
<select name="county" id="county">
<option value=""></option>
</select>区/县
</form>
</body>
</html>
运行截图:
存在的bug有:
1、某些选项内容不会自动显示,比如选福建福州台江,由于福州是在福建省城市中存放在以一个的元素,不会自动显示后面的区/县,需要点一下其他城市,在返回点击福州才行。但也只有数组中存放的首个元素才会如此。
2、换成其他城市时,下属的区/县不会自动改变,需要手动选择。