<html> <head> <title>下拉列表连动</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head> <body><!-- 二级联动 Start --><script language="JavaScript"> <!--var subval = new Array(); subval[0] = new Array('10','0','1-a') subval[1] = new Array('10','1','2-a') subval[2] = new Array('10','2','3-a') subval[3] = new Array('10','3','4-a') subval[4] = new Array('10','4','5-a') subval[5] = new Array('10','5','6-a') subval[6] = new Array('10','6','7-a') subval[7] = new Array('10','7','8-a') subval[8] = new Array('10','8','9-a') subval[9] = new Array('10','9','10-a') subval[10] = new Array('20','10','11-a') subval[11] = new Array('20','11','12-a') subval[12] = new Array('20','12','13-a') subval[13] = new Array('20','13','14-a') subval[14] = new Array('20','14','15-a') subval[15] = new Array('20','15','16-a') subval[16] = new Array('20','16','17-a') subval[17] = new Array('20','17','18-a') subval[18] = new Array('20','18','19-a') subval[19] = new Array('20','19','20-a')function changeselect1(locationid) { document.form1.s2.length = 0; document.form1.s2.options[0] = new Option('==请选择2==','');
for (i=0; i<subval.length; i++) { if (subval[i][0] == locationid) {document.form1.s2.options[document.form1.s2.length] = new Option(subval[i][2],subval[i][1]);} } }//--> </script><form name="form1"> <select name="s1" onChange="changeselect1(this.value)"> <option>==请选择1==</option> <option value="10">1-10</option> <option value="20">11-20</option> </select><select name="s2" onChange="changeselect2(this.value)"> <option>==请选择2==</option> </select> </form><!-- /二级联动 Over --></body> </html> 把一些相关的循环一下就OK
<script> var subArr = new Array(); subArr[0] = new Array('1','a_1'); subArr[1] = new Array('1','5','b_5'); subArr[2] = new Array('1','5','7','c_7'); subArr[3] = new Array('1','5','7','8','d_8'); subArr[4] = new Array('1','6','b_6'); subArr[5] = new Array('1','6','9','c_9'); subArr[6] = new Array('1','6','9','10','d_10');subArr[7] = new Array('2','a_2'); subArr[8] = new Array('2','11','b_11'); subArr[9] = new Array('2','11','12','c_12'); subArr[10] = new Array('2','11','12','13','d_13'); subArr[11] = new Array('2','14','b_14'); subArr[12] = new Array('2','14','15','c_15'); subArr[13] = new Array('2','14','15','16','d_16');subArr[14] = new Array('3','a_3'); subArr[15] = new Array('3','17','b_17'); subArr[16] = new Array('3','17','18','c_18'); subArr[17] = new Array('3','17','18','19','d_19'); subArr[18] = new Array('3','20','b_6'); subArr[19] = new Array('3','20','21','c_21'); subArr[20] = new Array('3','20','21','22','d_22');subArr[21] = new Array('4','a_4'); subArr[22] = new Array('4','23','b_23'); subArr[23] = new Array('4','23','24','c_24'); subArr[24] = new Array('4','23','24','25','d_25'); subArr[25] = new Array('4','26','b_26'); subArr[26] = new Array('4','26','27','c_27'); subArr[27] = new Array('4','26','27','28','d_28'); subArrLen = subArr.length; var divNum = 3;function sele(ch , n , divName){ var name = ch.name; var value = ch.value; var num = n + 1; var newDivName = divName + num; var level = n - 1; var levelNextLen = n + 2; var nextID = n; var nextValue = n + 1; for(i=n+1;i<=divNum;i++){ var oldDivName = divName + i; document.getElementById(oldDivName).innerHTML = ''; } var htmlStr = ''; var htmlStr = "<select name='" + name + "' onchange='sele(this , " + num + " , \"" + divName + "\")'>\n"; for(i=0;i<subArrLen;i++){ var sArr = subArr[i]; if(sArr.length == levelNextLen && sArr[level] == value){ htmlStr = htmlStr + "<option value='" + sArr[nextID] + "'>" + sArr[nextValue] + "</option>\n"; } } htmlStr = htmlStr + "</select>\n"; document.getElementById(newDivName).innerHTML = htmlStr; }</script><form> <select name="a[]" onchange="sele(this , 1 , 'make')"> <option value="1">a_1</option> <option value="2">a_2</option> <option value="3">a_3</option> <option value="4">a_4</option> </select> <div id="make2"></div> <div id="make3"></div> <div id="make4"></div> <div id="make5"></div> <div id="make6"></div> </form> 新写的,可无限分类
<head>
<title>下拉列表连动</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>
<body><!-- 二级联动 Start --><script language="JavaScript">
<!--var subval = new Array();
subval[0] = new Array('10','0','1-a')
subval[1] = new Array('10','1','2-a')
subval[2] = new Array('10','2','3-a')
subval[3] = new Array('10','3','4-a')
subval[4] = new Array('10','4','5-a')
subval[5] = new Array('10','5','6-a')
subval[6] = new Array('10','6','7-a')
subval[7] = new Array('10','7','8-a')
subval[8] = new Array('10','8','9-a')
subval[9] = new Array('10','9','10-a')
subval[10] = new Array('20','10','11-a')
subval[11] = new Array('20','11','12-a')
subval[12] = new Array('20','12','13-a')
subval[13] = new Array('20','13','14-a')
subval[14] = new Array('20','14','15-a')
subval[15] = new Array('20','15','16-a')
subval[16] = new Array('20','16','17-a')
subval[17] = new Array('20','17','18-a')
subval[18] = new Array('20','18','19-a')
subval[19] = new Array('20','19','20-a')function changeselect1(locationid)
{
document.form1.s2.length = 0;
document.form1.s2.options[0] = new Option('==请选择2==','');
for (i=0; i<subval.length; i++)
{
if (subval[i][0] == locationid)
{document.form1.s2.options[document.form1.s2.length] = new Option(subval[i][2],subval[i][1]);}
}
}//-->
</script><form name="form1">
<select name="s1" onChange="changeselect1(this.value)">
<option>==请选择1==</option>
<option value="10">1-10</option>
<option value="20">11-20</option>
</select><select name="s2" onChange="changeselect2(this.value)">
<option>==请选择2==</option>
</select>
</form><!-- /二级联动 Over --></body>
</html>
把一些相关的循环一下就OK
var subArr = new Array();
subArr[0] = new Array('1','a_1');
subArr[1] = new Array('1','5','b_5');
subArr[2] = new Array('1','5','7','c_7');
subArr[3] = new Array('1','5','7','8','d_8');
subArr[4] = new Array('1','6','b_6');
subArr[5] = new Array('1','6','9','c_9');
subArr[6] = new Array('1','6','9','10','d_10');subArr[7] = new Array('2','a_2');
subArr[8] = new Array('2','11','b_11');
subArr[9] = new Array('2','11','12','c_12');
subArr[10] = new Array('2','11','12','13','d_13');
subArr[11] = new Array('2','14','b_14');
subArr[12] = new Array('2','14','15','c_15');
subArr[13] = new Array('2','14','15','16','d_16');subArr[14] = new Array('3','a_3');
subArr[15] = new Array('3','17','b_17');
subArr[16] = new Array('3','17','18','c_18');
subArr[17] = new Array('3','17','18','19','d_19');
subArr[18] = new Array('3','20','b_6');
subArr[19] = new Array('3','20','21','c_21');
subArr[20] = new Array('3','20','21','22','d_22');subArr[21] = new Array('4','a_4');
subArr[22] = new Array('4','23','b_23');
subArr[23] = new Array('4','23','24','c_24');
subArr[24] = new Array('4','23','24','25','d_25');
subArr[25] = new Array('4','26','b_26');
subArr[26] = new Array('4','26','27','c_27');
subArr[27] = new Array('4','26','27','28','d_28');
subArrLen = subArr.length;
var divNum = 3;function sele(ch , n , divName){
var name = ch.name;
var value = ch.value;
var num = n + 1;
var newDivName = divName + num;
var level = n - 1;
var levelNextLen = n + 2;
var nextID = n;
var nextValue = n + 1;
for(i=n+1;i<=divNum;i++){
var oldDivName = divName + i;
document.getElementById(oldDivName).innerHTML = '';
}
var htmlStr = '';
var htmlStr = "<select name='" + name + "' onchange='sele(this , " + num + " , \"" + divName + "\")'>\n";
for(i=0;i<subArrLen;i++){
var sArr = subArr[i];
if(sArr.length == levelNextLen && sArr[level] == value){
htmlStr = htmlStr + "<option value='" + sArr[nextID] + "'>" + sArr[nextValue] + "</option>\n";
}
}
htmlStr = htmlStr + "</select>\n";
document.getElementById(newDivName).innerHTML = htmlStr;
}</script><form>
<select name="a[]" onchange="sele(this , 1 , 'make')">
<option value="1">a_1</option>
<option value="2">a_2</option>
<option value="3">a_3</option>
<option value="4">a_4</option>
</select>
<div id="make2"></div>
<div id="make3"></div>
<div id="make4"></div>
<div id="make5"></div>
<div id="make6"></div>
</form>
新写的,可无限分类
楼上说的AJax是一个不错的方法.现在基本上都用Ajax来解决这种问题了.