以下三级关联如何实现,默认是如下全部option都有,但按顺序选择时启用三级关联,当选择"所在部门",则"所在组"进行关联出现(如"部门1"则只出现部门1的3个组),当继续选择"所在组"时,则"负责人1,负责人2,负责人3"都关联对应组的人员(如"部门1-组1"则只出现"部门1-组1"的2名负责人).另外"负责人1,负责人2,负责人3"选择时不能出现相同人.请问以上思路如下实现动态关联?         所在部门:
          <select name="DeptID" style="WIDTH:78px">
          <option value="" Selected></option>
          <option value="BM20">部门1</option>
          <option value="BM21">部门2</option>
          <option value="BM99">部门3</option>
          </select>
          所在组:
          <select name="ProjectGID" style="WIDTH:78px">
          <option value="" Selected></option>     
          <option value="PG11">部门1-组1</option>
          <option value="PG12">部门1-组2</option>
          <option value="PG13">部门1-组3</option>
          
          <option value="PG14">部门2-组1</option>
          <option value="PG15">部门2-组2</option>
          
          <option value="PG16">部门3-组1</option>
          <option value="PG17">部门3-组2</option>
          <option value="PG18">部门3-组3</option>
           </select>
           负责人1<select name="PJChargePerson1">
          <option value="" Selected></option>
          <option value="1" >部门1-组1-员工1</option>
          <option value="2" >部门1-组1-员工2</option>
          
          <option value="3" >部门1-组2-员工1</option>
          <option value="4" >部门1-组2-员工2</option>
          
          <option value="5" >部门1-组3-员工1</option>
          
          <option value="6" >部门2-组1-员工1</option>
          <option value="7" >部门2-组1-员工2</option>
          
          <option value="8" >部门2-组2-员工1</option>
          <option value="9" >部门2-组2-员工2</option>
          <option value="10" >部门2-组2-员工3</option>
          
          <option value="11" >部门3-组1-员工1</option>
          <option value="12" >部门3-组1-员工2</option>
          <option value="13" >部门3-组1-员工3</option>
          
          <option value="14" >部门3-组2-员工1</option>
          <option value="15" >部门3-组2-员工2</option>
          
          <option value="16" >部门3-组3-员工1</option>
          <option value="17" >部门3-组3-员工2</option>
          <option value="18" >部门3-组3-员工3</option>
          <option value="19" >部门3-组3-员工4</option>
          </select>
          负责人2<select name="PJChargePerson2">
          <option value="" Selected></option>
          <option value="1" >部门1-组1-员工1</option>
          <option value="2" >部门1-组1-员工2</option>
          
          <option value="3" >部门1-组2-员工1</option>
          <option value="4" >部门1-组2-员工2</option>
          
          <option value="5" >部门1-组3-员工1</option>
          
          <option value="6" >部门2-组1-员工1</option>
          <option value="7" >部门2-组1-员工2</option>
          
          <option value="8" >部门2-组2-员工1</option>
          <option value="9" >部门2-组2-员工2</option>
          <option value="10" >部门2-组2-员工3</option>
          
          <option value="11" >部门3-组1-员工1</option>
          <option value="12" >部门3-组1-员工2</option>
          <option value="13" >部门3-组1-员工3</option>
          
          <option value="14" >部门3-组2-员工1</option>
          <option value="15" >部门3-组2-员工2</option>
          
          <option value="16" >部门3-组3-员工1</option>
          <option value="17" >部门3-组3-员工2</option>
          <option value="18" >部门3-组3-员工3</option>
          <option value="19" >部门3-组3-员工4</option>
          </select>
          负责人3<select name="PJChargePerson3">
          <option value="" Selected></option>
          <option value="1" >部门1-组1-员工1</option>
          <option value="2" >部门1-组1-员工2</option>
          
          <option value="3" >部门1-组2-员工1</option>
          <option value="4" >部门1-组2-员工2</option>
          
          <option value="5" >部门1-组3-员工1</option>
          
          <option value="6" >部门2-组1-员工1</option>
          <option value="7" >部门2-组1-员工2</option>
          
          <option value="8" >部门2-组2-员工1</option>
          <option value="9" >部门2-组2-员工2</option>
          <option value="10" >部门2-组2-员工3</option>
          
          <option value="11" >部门3-组1-员工1</option>
          <option value="12" >部门3-组1-员工2</option>
          <option value="13" >部门3-组1-员工3</option>
          
          <option value="14" >部门3-组2-员工1</option>
          <option value="15" >部门3-组2-员工2</option>
          
          <option value="16" >部门3-组3-员工1</option>
          <option value="17" >部门3-组3-员工2</option>
          <option value="18" >部门3-组3-员工3</option>
          <option value="19" >部门3-组3-员工4</option>
          </select>

解决方案 »

  1.   

    但我这个第三级是是多个,如何让其一起连动,另外我还需要获得每一级的value,您的联动菜单如何去得值
      

  2.   

    你这中结构是可以满足构造成的成但是怎么取value值  当初设计的时候忽略了你无视我吧  哈哈
      

  3.   

    <script>
        var project=[];
        var person=[];
        window.onload=function(){
            var selDept=document.getElementsByName("DeptID")[0];
            var selProj=document.getElementsByName("ProjectGID")[0];
            var selPer1=document.getElementsByName("PJChargePerson1")[0];
            var selPer2=document.getElementsByName("PJChargePerson2")[0];
            var selPer3=document.getElementsByName("PJChargePerson3")[0];
            
            for(var i=0;i<selProj.options.length;i++)
                project[project.length]={"value":selProj.options[i].value,"text":selProj.options[i].text};
            for(var i=0;i<selPer1.options.length;i++)
                person[person.length]={"value":selPer1.options[i].value,"text":selPer1.options[i].text};
            //所在部门change
            selDept.onchange=function(){
                var selText=this.options[this.selectedIndex].text;
                selProj.options.length=1;
                for(var i=0;i<project.length;i++){//部门1-组1
                    var index=project[i]["text"].lastIndexOf("-");
                    var val=project[i]["text"].substring(0,index);
                    if(val==selText){
                        selProj.options[selProj.options.length]=new Option(project[i]["text"],project[i]["value"]);
                    }
                }
            }
            //所在组change
            selProj.onchange=function(){
                var selText=this.options[this.selectedIndex].text;
                selPer1.options.length=1;
                selPer2.options.length=1;
                selPer3.options.length=1;
                for(var i=0;i<person.length;i++){//部门1-组1
                    var index=person[i]["text"].lastIndexOf("-");
                    var val=person[i]["text"].substring(0,index);
                    if(val==selText){
                        selPer1.options[selPer1.options.length]=new Option(person[i]["text"],person[i]["value"]);
                        selPer2.options[selPer2.options.length]=new Option(person[i]["text"],person[i]["value"]);
                        selPer3.options[selPer3.options.length]=new Option(person[i]["text"],person[i]["value"]);
                    }
                }
                
            }
        }
        
    </script>
    所在部门:
    <select name="DeptID" style="WIDTH:78px">
        <option value="" Selected></option>
        <option value="BM20">部门1</option>
        <option value="BM21">部门2</option>
        <option value="BM99">部门3</option>
    </select>
    所在组:
    <select name="ProjectGID" style="WIDTH:78px">
        <option value="" Selected></option>     
        <option value="PG11">部门1-组1</option>
        <option value="PG12">部门1-组2</option>
        <option value="PG13">部门1-组3</option>    <option value="PG14">部门2-组1</option>
        <option value="PG15">部门2-组2</option>    <option value="PG16">部门3-组1</option>
        <option value="PG17">部门3-组2</option>
        <option value="PG18">部门3-组3</option>
    </select>
    负责人1<select name="PJChargePerson1">
        <option value="" Selected></option>
        <option value="1" >部门1-组1-员工1</option>
        <option value="2" >部门1-组1-员工2</option>    <option value="3" >部门1-组2-员工1</option>
        <option value="4" >部门1-组2-员工2</option>    <option value="5" >部门1-组3-员工1</option>    <option value="6" >部门2-组1-员工1</option>
        <option value="7" >部门2-组1-员工2</option>    <option value="8" >部门2-组2-员工1</option>
        <option value="9" >部门2-组2-员工2</option>
        <option value="10" >部门2-组2-员工3</option>    <option value="11" >部门3-组1-员工1</option>
        <option value="12" >部门3-组1-员工2</option>
        <option value="13" >部门3-组1-员工3</option>    <option value="14" >部门3-组2-员工1</option>
        <option value="15" >部门3-组2-员工2</option>    <option value="16" >部门3-组3-员工1</option>
        <option value="17" >部门3-组3-员工2</option>
        <option value="18" >部门3-组3-员工3</option>
        <option value="19" >部门3-组3-员工4</option>
    </select>
    负责人2<select name="PJChargePerson2">
        <option value="" Selected></option>
        <option value="1" >部门1-组1-员工1</option>
        <option value="2" >部门1-组1-员工2</option>    <option value="3" >部门1-组2-员工1</option>
        <option value="4" >部门1-组2-员工2</option>    <option value="5" >部门1-组3-员工1</option>    <option value="6" >部门2-组1-员工1</option>
        <option value="7" >部门2-组1-员工2</option>    <option value="8" >部门2-组2-员工1</option>
        <option value="9" >部门2-组2-员工2</option>
        <option value="10" >部门2-组2-员工3</option>    <option value="11" >部门3-组1-员工1</option>
        <option value="12" >部门3-组1-员工2</option>
        <option value="13" >部门3-组1-员工3</option>    <option value="14" >部门3-组2-员工1</option>
        <option value="15" >部门3-组2-员工2</option>    <option value="16" >部门3-组3-员工1</option>
        <option value="17" >部门3-组3-员工2</option>
        <option value="18" >部门3-组3-员工3</option>
        <option value="19" >部门3-组3-员工4</option>
    </select>
    负责人3<select name="PJChargePerson3">
        <option value="" Selected></option>
        <option value="1" >部门1-组1-员工1</option>
        <option value="2" >部门1-组1-员工2</option>    <option value="3" >部门1-组2-员工1</option>
        <option value="4" >部门1-组2-员工2</option>    <option value="5" >部门1-组3-员工1</option>    <option value="6" >部门2-组1-员工1</option>
        <option value="7" >部门2-组1-员工2</option>    <option value="8" >部门2-组2-员工1</option>
        <option value="9" >部门2-组2-员工2</option>
        <option value="10" >部门2-组2-员工3</option>    <option value="11" >部门3-组1-员工1</option>
        <option value="12" >部门3-组1-员工2</option>
        <option value="13" >部门3-组1-员工3</option>    <option value="14" >部门3-组2-员工1</option>
        <option value="15" >部门3-组2-员工2</option>    <option value="16" >部门3-组3-员工1</option>
        <option value="17" >部门3-组3-员工2</option>
        <option value="18" >部门3-组3-员工3</option>
        <option value="19" >部门3-组3-员工4</option>
    </select>
      

  4.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    //组
    var arry = new Array();
    arry['部门1'] = ['部门1-组1','部门1-组2','部门1-组3'];
    arry['部门2'] =  ['部门2-组1','部门2-组2','部门2-组3'];
    arry['部门3'] =  ['部门3-组1','部门3-组2','部门3-组3'];
    //负责人
    var arryCharge = new Array();
    arryCharge['部门1-组1'] = ['部门1-组1-员工1','部门1-组1-员工2','','部门1-组1-员工3'];
    arryCharge['部门1-组2'] = ['部门1-组2-员工1','部门1-组2-员工2','','部门1-组2-员工3'];
    arryCharge['部门1-组3'] = ['部门1-组3-员工1','部门1-组3-员工2','','部门1-组3-员工3'];
    arryCharge['部门2-组1'] = ['部门2-组1-员工1','部门2-组1-员工2','','部门2-组1-员工3'];
    arryCharge['部门2-组2'] = ['部门2-组2-员工1','部门2-组2-员工2','','部门2-组2-员工3'];
    arryCharge['部门2-组3'] = ['部门2-组3-员工1','部门2-组3-员工2','','部门2-组3-员工3'];
    arryCharge['部门3-组1'] = ['部门3-组1-员工1','部门3-组1-员工2','','部门3-组1-员工3'];
    arryCharge['部门3-组2'] = ['部门3-组2-员工1','部门3-组2-员工2','','部门3-组2-员工3'];
    arryCharge['部门3-组3'] = ['部门3-组3-员工1','部门3-组3-员工2','','部门3-组3-员工3'];
    // //组
    function show() {
    var DeptID = document.inputForm.DeptID.value;
    document.inputForm.ProjectGID.options.length = 0;
    var optionOne;
    for (var i in arry[DeptID]) {
    optionOne = new Option(arry[DeptID][i],arry[DeptID][i]);
    document.inputForm.ProjectGID.options.add(optionOne);
    }
    } //负责人
    function showDown() {
    var ProjectGID = document.inputForm.ProjectGID.value;
    document.inputForm.PJChargePerson1.options.length = 0;
    var optionOne;
    for (var j in arryCharge[ProjectGID]) {
    optionOne = new Option(arryCharge[ProjectGID][j],arryCharge[ProjectGID][j]);
    document.inputForm.PJChargePerson1.options.add(optionOne);
    }
    }
    //-->
    </SCRIPT>
    </HEAD><BODY>
    <form action="" method="post" name="inputForm">
    所在部门:
             <select name="DeptID" style="WIDTH:78px" onChange="show()">
             <option value="" Selected></option>
             <option value="部门1">部门1</option>
             <option value="部门2">部门2</option>
             <option value="部门3">部门3</option>
             </select>
    所在组:
             <select name="ProjectGID" style="WIDTH:78px" onChange="showDown()">
              
             </select>
    负责人1
     <select name="PJChargePerson1">
             </select></form>
    </BODY>
    </HTML>
      

  5.   

    谢谢楼上二位的程序,特别是shan1119适合我的要求,但还有一个,"负责人1,负责人2,负责人3"不能选择相同人怎么实现?