<!-- 二级联动 Start --><script language="JavaScript">
<!--var subcat = new Array();
subcat[0] = new Array('10','1','=1')
subcat[1] = new Array('10','2','=2')
subcat[2] = new Array('10','3','=3')
subcat[3] = new Array('10','4','=4')
subcat[4] = new Array('10','5','=5')
subcat[5] = new Array('10','6','=6')
subcat[6] = new Array('10','7','=7')
subcat[7] = new Array('10','8','=8')
subcat[8] = new Array('10','9','=9')
subcat[9] = new Array('10','10','=10')
subcat[10] = new Array('20','11','=11')
subcat[11] = new Array('20','12','=12')
subcat[12] = new Array('20','13','=13')
subcat[13] = new Array('20','14','=14')
subcat[14] = new Array('20','15','=15')
subcat[15] = new Array('20','16','=16')
subcat[16] = new Array('20','17','=17')
subcat[17] = new Array('20','18','=18')
subcat[18] = new Array('20','19','=19')
subcat[19] = new Array('20','20','=20')function changeselect1(locationid)
{
        document.form1.s2.length = 0;
        document.form1.s2.options[0] = new Option('==请选择==','');
        for (i=0; i<subcat.length; i++)
        {
                if (subcat[i][0] == locationid)
                {document.form1.s2.options[document.form1.s2.length] = new Option(subcat[i][1], subcat[i][2]);}
        }
}
//-->
</script><form name="form1">二级联动:<select name="s1" onChange="changeselect1(this.value)">
<option>==请选择==</option>
<option value="10">1-10</option>
<option value="20">11-20</option>
</select><select name="s2" onChange="alert(this.value)"> 
<option>==请选择==</option>
</select></form><!-- 二级联动 Over --><!-- 三级联动 Start --><script language="JavaScript">
<!--var subval = new Array();
subval[0] = new Array('10','单数','1','=1')
subval[1] = new Array('10','双数','2','=2')
subval[2] = new Array('10','单数','3','=3')
subval[3] = new Array('10','双数','4','=4')
subval[4] = new Array('10','单数','5','=5')
subval[5] = new Array('10','双数','6','=6')
subval[6] = new Array('10','单数','7','=7')
subval[7] = new Array('10','双数','8','=8')
subval[8] = new Array('10','单数','9','=9')
subval[9] = new Array('10','双数','10','=10')
subval[10] = new Array('20','单数','11','=11')
subval[11] = new Array('20','双数','12','=12')
subval[12] = new Array('20','单数','13','=13')
subval[13] = new Array('20','双数','14','=14')
subval[14] = new Array('20','单数','15','=15')
subval[15] = new Array('20','双数','16','=16')
subval[16] = new Array('20','单数','17','=17')
subval[17] = new Array('20','双数','18','=18')
subval[18] = new Array('20','单数','19','=19')
subval[19] = new Array('20','双数','20','=20')function changeselect2()
{
        document.form2.s2.length = 0;
        document.form2.s2.options[0] = new Option('==请选择==','');
        document.form2.s2.options[1] = new Option('选择单数','单数');
        document.form2.s2.options[2] = new Option('选择双数','双数');
        document.form2.s3.length = 0;
        document.form2.s3.options[0] = new Option('==请选择==','');
}function changeselect3(sub1,sub2)
{
        document.form2.s3.length = 0;
        document.form2.s3.options[0] = new Option('==请选择==','');
        for (i=0; i<subval.length; i++)
        {
                if ((subval[i][0] == sub1) & (subval[i][1] == sub2))
                {document.form2.s3.options[document.form2.s3.length] = new Option(subval[i][2], subval[i][3]);}
        }
}
//-->
</script><form name="form2">三级联动:<select name="s1" onChange="changeselect2()">
<option>==请选择==</option>
<option value="10">1-10</option>
<option value="20">11-20</option>
</select><select name="s2" onChange="changeselect3(document.form2.s1.value,this.value)"> 
<option>==请选择==</option>
</select><select name="s3" onChange="alert(this.value)"> 
<option>==请选择==</option>
</select></form><!-- 三级联动 Over -->

解决方案 »

  1.   

    无限级关联下拉菜单(ie5,NS6,Moz1.6)
    http://fason.nease.net/samples/select/
      

  2.   

    如果数据量较大的话
    可考虑使用xmlhttp的方式来解决这样的问题
      

  3.   

    <script language='javascript'>
    var partarray=new Array();
    var userarray=new Array();
    partarray[0]='8,董事会';
    partarray[1]='9,董事长';
    partarray[2]='10,总经理';
    partarray[3]='11,副总经理(总工程师)';
    partarray[4]='16,财务部';
    userarray[0]='10,ghl,8';
    userarray[1]='11,fff,9';
    userarray[2]='13,qyf,11';
    userarray[3]='16,lm,8';
    userarray[4]='17,test008,8';
    userarray[5]='19,我是一个兵,8';
    userarray[6]='20,我是女生,8';
    </script>
    <form name="form1">
    部门<select name="coursepart" size=1 onchange="buildman(document.form1.coursepart.options[document.form1.coursepart.selectedIndex].value)">
    </select>
    <br>执行人<select name="courseman" size=1>
    </select>
    </form>
    <script language="javascript">
    //生成默认的部门与人员下拉菜单
    builddepart();
    buildman(partarray[0].split(",")[0]);//生成部门下拉菜单
    function builddepart() {
    document.form1.coursepart.length = 0;
    var i;
    for (i=0;i <partarray.length; i++) {
    document.form1.coursepart.options[document.form1.coursepart.length] = new Option(partarray[i].split(",")[1],partarray[i].split(",")[0]);
    }
    }
    //根据部门下拉菜单的值动态生成人员的值
    function buildman(partid) {
    document.form1.courseman.length=0;
    var i;
    for (i=0;i<userarray.length;i++) {
    if (userarray[i].split(",")[2]==partid) {
    document.form1.courseman.options[document.form1.courseman.length]=new Option(userarray[i].split(",")[1],userarray[i].split(",")[0]);
    }
    }
    }
    </script>
      

  4.   

    太多了.
    http://expert.csdn.net/Expert/topic/3041/3041626.xml?temp=4.000491E-02