//_______________________*************任务二 城市联动*************____________________________
function Dsy() {
this.Items = {};
}
//将数组赋值给Item列表
Dsy.prototype.add = function (id, iArray) {
this.Items[id] = iArray;
}
//检查是否存在
Dsy.prototype.Exists = function (id) {
if (typeof (this.Items[id]) == "undefined") return false;
return true;
}
//城市联动
function change(v) {
var str = "0";
//s["province", "city", "county"]
for (i = 0; i < v; i++) { str += ("_" + (document.getElementById(s[i]).selectedIndex - 1)); };
var ss = document.getElementById(s[v]);
with (ss) {
length = 0;
//opt0 = ["省份", "地级市", "市、县级市、县"];
options[0] = new Option(opt0[v], opt0[v]);
if (v && document.getElementById(s[v - 1]).selectedIndex > 0 || !v) {
if (dsy.Exists(str)) {
ar = dsy.Items[str];
for (i = 0; i < ar.length; i++) options[length] = new Option(ar[i], ar[i]);
if (v) options[1].selected = true;
}
}
if (++v < s.length) { change(v); }
}
}
var dsy = new Dsy();
dsy.add("0", ["安徽", "北京", "福建"]);
dsy.add("0_0", ["安庆", "蚌埠", "巢湖"]);
dsy.add("0_0_0", ["安庆市", "怀宁县", "潜山县"]);
dsy.add("0_0_1", ["蚌埠市", "固镇县", "怀远县", "五河县"]);
dsy.add("0_0_2", ["巢湖市", "含山县", "和县", "庐江县", "无为县"]);
dsy.add("0_1", ["北京"]);
dsy.add("0_1_0", ["北京市", "密云县", "延庆县"]);
dsy.add("0_2", ["福州", "龙岩", "南平", "宁德", "莆田", "泉州", "三明", "厦门", "漳州"]);
dsy.add("0_2_0", ["长乐市", "福清市", "福州市", "连江县", "罗源县", "闽侯县", "闽清县", "平潭县", "永泰县"]);
dsy.add("0_2_1", ["长汀县", "连城县", "龙岩市", "上杭县", "武平县", "永定县", "漳平市"]);
dsy.add("0_2_2", ["光泽县", "建阳市", "建瓯市", "南平市", "浦城县", "邵武市", "顺昌县", "松溪县"]);
var s = ["province", "city", "county"];
var opt0 = ["省份", "地级市", "市、县级市、县"];
function setup() {
for (i = 0; i < s.length - 1; i++)
document.getElementById(s[i]).onchange = new Function("change(" + (i + 1) + ")");
change(0);
}
//_______________________**************************____________________________
<select id="province" runat="server" NAME="province"></select>
<select id="city" runat="server" NAME="city"></select>
<select id="county" runat="server" NAME="city"></select>
<!--js初始化函数-->
<script type="text/javascript">
setup()
</script>