Js 联动下拉列表
使用示例:
<select id="Prov" name="Prov"></select>
<select id="City"></select>
<script type="text/javascript">
initRootList(subcat, "Prov", "City");
</script>
相关Js如下:
// ==============================================================================
// Created by Bndy at 04 / 24 / 2010
// Copyright (c) 2010 Bndy, All rights reserved.
// Welcome to my site http : // www.bndy.net
//
// * * * * * * * * * * * * *
// * MAIL- bndy5337@163.com *
// * Q Q - 81795705 http://www.bndy.net
// * MSN - bndy5337@msn.com *
// * * * * * * * * * * * * *
//
// ------------------------------------------------------------------------------
//
// ==============================================================================
/*********************************** 联动下拉列表函数(暂只支持二级联动) **************************************/
function initSubList(parentValue, ddlID, dataArray) {
var nextControl = document.getElementById(ddlID);
if (nextControl == null) return;
nextControl.length = 0;
for (var i = 0; i < dataArray.length; i++) {
if (dataArray[i][0][0] == parentValue) {
if (nextControl != null) {
for (var x = 0; x < dataArray[i].length; x++) {
nextControl.options[nextControl.options.length] = new Option(dataArray[i][x][1], dataArray[i][x][1]);
}
}
}
}
}
/*dataArray 示例如下:
* var subcat = new Array();
*
* subcat[0] = new Array();
* subcat[0][0] = new Array('省份', '城市');
* subcat[1] = new Array();
* subcat[1][0] = new Array('北京', '北京');
* ……
* subcat[5] = new Array();
* subcat[5][0] = new Array('河北', '石家庄');
* subcat[5][1] = new Array('河北', '南宫');
* subcat[5][2] = new Array('河北', '辛集');
* subcat[5][3] = new Array('河北', '衡水');
* subcat[5][4] = new Array('河北', '邢台');
*/
function initRootList(dataArray) {
for (var index = 1; index < arguments.length; index++) {
var ddl = document.getElementById(arguments[index]);
if (index != arguments.length - 1) {
var arg = arguments[index + 1];
//ddl.setAttribute("onchange", "initSubList(this.value, \"" + arg + "\",dataArray);");
// 兼容ie 7.0, 8.0, FF
ddl.onchange = function () {
initSubList(this.value, arg, dataArray);
};
}
if (index == 1) {
for (var i = 0; i < dataArray.length; i++) {
ddl.options[ddl.options.length] = new Option(dataArray[i][0][0], dataArray[i][0][0]);
}
}
else {
initSubList(document.getElementById(arguments[index - 1]).value, arguments[index], dataArray);
}
}
}
-- From Bndy.Net


浙公网安备 33010602011771号