<script language="javascript">
function change(str1,str2)
 {
str2.value=str1.value
 }</script>
 <select size="1" name="select1" onchange="change(select1,select2)">
 <option value='1'>1</option>
<option value='2'>2</option>
</select><select size="1" name="select2" onchange="change(select2,select1)"> <option value='1'>1</option>
<option value='2'>2</option></select>

解决方案 »

  1.   

    使用如下的思路应该是可以实现的:
    样例代码:
             var URLStr = "b.jsp";//后面接一些参数传递你的值
    var XMLObj = new ActiveXObject("Msxml2.XMLHTTP");
    XMLObj.Open("get",URLStr,false);
    XMLObj.Send();
    var BarStr = XMLObj.responseText ;//返回结果
              document.all.B.innerHTML = BarStr ;//将新值覆盖就的选择的值
      

  2.   

    感觉你这个主要是连动的例子
    我做过很多的
    大概思路是把需要的数据先在页面中生成XML
    然后通过js控制显示,不需要再去读取数据,增加服务器负担了
      

  3.   

    这是我用asp和js实现的一个连动下拉菜单的例子,有点麻烦,但可以参考一下:<%
    '生成与二级单位的下拉菜单关联JavaScript
    Sub Script_YD(Table_Name)
    response.write "<SCRIPT LANGUAGE=JavaScript>"
    response.write "   " '生成与二级单位的关联菜单中用到的数组
    response.write "var arrItems1 = new Array();"
    response.write "var arrItemsGrp1 = new Array();"
    response.write "var arrItemsGrpv1 = new Array();" sql="select distinct 建设单位,油区 from "&Table_Name
    set rs = conn.execute(sql)
    i = 0
    do while not rs.eof
       response.write "arrItems1["&i&"] = '"&rs("建设单位")&"';"
       response.write "arrItemsGrpv1["&i&"] = '"&rs("建设单位")&"';"
       response.write "arrItemsGrp1["&i&"] = '"&rs("油区")&"';"
       rs.movenext
       i = i+1
    loop
    rs.close()

    response.write "</script>"
    %> <script language="JavaScript">
    <!--
    function selectChange(control, controlToPopulate, ItemArray, GroupArray, GroupValue)
    {
      var myEle ;
      
      // 清空二级下拉菜单
      for (var q=controlToPopulate.options.length;q>=0;q--)
          controlToPopulate.options[q]=null;
      
      // 如果没有值的话,加入默认的空值下拉选项
      myEle = document.createElement("option") ;
      myEle.value = "" ;
      myEle.text = "     " ;
      controlToPopulate.add(myEle) ;
      // 通过循环
      // 加入二级与三级下拉菜单的
      // 显示内容
      for ( x = 0 ; x < ItemArray.length  ; x++ )
    {
      if ( GroupArray[x] == control.value )
    {
      myEle = document.createElement("option") ;
      myEle.value = GroupValue[x] ;
      myEle.text = ItemArray[x] ;
      controlToPopulate.add(myEle) ;
    }
    }
    }
    //  End -->
    </script>
    <%
    End Sub
    %><%
    '生成油区与区块的二极管联菜单
    Sub Script_YQ(Table_Name)
        response.write "<SCRIPT LANGUAGE=JavaScript>"
    response.write "   " '生成与二级单位的关联菜单中用到的数组
    response.write "var arrItems1 = new Array();"
    response.write "var arrItemsGrp1 = new Array();"
    response.write "var arrItemsGrpv1 = new Array();" sql="select distinct 计划区块,油区 from "&Table_Name
    set rs = conn.execute(sql)
    i = 0
    do while not rs.eof
       response.write "arrItems1["&i&"] = '"&rs("计划区块")&"';"
       response.write "arrItemsGrpv1["&i&"] = '"&rs("计划区块")&"';"
       response.write "arrItemsGrp1["&i&"] = '"&rs("油区")&"';"
       rs.movenext
       i = i+1
    loop
    rs.close()

    response.write "</script>"
    %>
        <script language="JavaScript">
    <!--
    function selectChange(control, controlToPopulate, ItemArray, GroupArray, GroupValue)
    {
      var myEle ;
      
      // 清空二级下拉菜单
      for (var q=controlToPopulate.options.length;q>=0;q--)
          controlToPopulate.options[q]=null;
      
      // 如果没有值的话,加入默认的空值下拉选项
      myEle = document.createElement("option") ;
      myEle.value = "" ;
      myEle.text = "     " ;
      controlToPopulate.add(myEle) ;
      // 通过循环
      // 加入二级与三级下拉菜单的
      // 显示内容
      for ( x = 0 ; x < ItemArray.length  ; x++ )
    {
      if ( GroupArray[x] == control.value )
    {
      myEle = document.createElement("option") ;
      myEle.value = GroupValue[x] ;
      myEle.text = ItemArray[x] ;
      controlToPopulate.add(myEle) ;
    }
    }
    }
    //  End -->
    </script>
    <%
    End Sub
    %><%
    '生成油区与项目名称的二极管联菜单
    Sub Script_YX(Table_Name)
        response.write "<SCRIPT LANGUAGE=JavaScript>"
    response.write "   " '生成与二级单位的关联菜单中用到的数组
    response.write "var arrItems1 = new Array();"
    response.write "var arrItemsGrp1 = new Array();"
    response.write "var arrItemsGrpv1 = new Array();" sql="select distinct 项目名称,油区 from "&Table_Name
    set rs = conn.execute(sql)
    i = 0
    do while not rs.eof
       response.write "arrItems1["&i&"] = '"&rs("项目名称")&"';"
       response.write "arrItemsGrpv1["&i&"] = '"&rs("项目名称")&"';"
       response.write "arrItemsGrp1["&i&"] = '"&rs("油区")&"';"
       rs.movenext
       i = i+1
    loop
    rs.close()

    response.write "</script>"
    %>
        <script language="JavaScript">
    <!--
    function selectChange(control, controlToPopulate, ItemArray, GroupArray, GroupValue)
    {
      var myEle ;
      
      // 清空二级下拉菜单
      for (var q=controlToPopulate.options.length;q>=0;q--)
          controlToPopulate.options[q]=null;
      
      // 如果没有值的话,加入默认的空值下拉选项
      myEle = document.createElement("option") ;
      myEle.value = "" ;
      myEle.text = "     " ;
      controlToPopulate.add(myEle) ;
      // 通过循环
      // 加入二级与三级下拉菜单的
      // 显示内容
      for ( x = 0 ; x < ItemArray.length  ; x++ )
    {
      if ( GroupArray[x] == control.value )
    {
      myEle = document.createElement("option") ;
      myEle.value = GroupValue[x] ;
      myEle.text = ItemArray[x] ;
      controlToPopulate.add(myEle) ;
    }
    }
    }
    //  End -->
    </script>
    <%
    End Sub
    %>
    <%
    '生成、二级单位、区块三者相关联的JavaScript
    Sub Script_YDQ(Table_Name)
    response.write "<SCRIPT LANGUAGE=JavaScript>"
    response.write "   " '生成与二级单位的关联菜单中用到的数组
    response.write "var arrItems1 = new Array();"
    response.write "var arrItemsGrp1 = new Array();"
    response.write "var arrItemsGrpv1 = new Array();" sql="select distinct 建设单位,油区 from "&Table_Name
    set rs = conn.execute(sql)
    i = 0
    do while not rs.eof
       response.write "arrItems1["&i&"] = '"&rs("建设单位")&"';"
       response.write "arrItemsGrpv1["&i&"] = '"&rs("建设单位")&"';"
       response.write "arrItemsGrp1["&i&"] = '"&rs("油区")&"';"
       rs.movenext
       i = i+1
    loop
    rs.close() '生成二级单位与区块关联菜单中用到的数组
    response.write "var arrItems2 = new Array();"
    response.write "var arrItemsGrp2 = new Array();"
    response.write "var arrItemsGrpv2 = new Array();" sql = "select distinct 计划区块,建设单位,油区 from 钻井工程汇总"
    set rs = conn.execute(sql)
    j = 0
    do while not rs.eof
       response.write "arrItems2["&j&"] = '"&rs("计划区块")&"';"
       '存放生成的<option>的value值
       response.write "arrItemsGrpv2["&j&"] = '"&rs("计划区块")&"';"  
       response.write "arrItemsGrp2["&j&"] = '"&rs("建设单位")&"';"
       rs.movenext
       j = j+1
    loop
    rs.close() response.write"         "
    response.write"//End -->"
    response.write "</script>"
    %>
    <script language="JavaScript">
    <!--
    function selectChange(control, controlToPopulate, ItemArray, GroupArray, GroupValue)
    {
      var myEle ;
      
      // 清空二级下拉菜单
      for (var q=controlToPopulate.options.length;q>=0;q--) controlToPopulate.options[q]=null;
      if (control.name == "dwmc") {
    // 清空三级下拉菜单
    for (var q=myChoices.qk.options.length;q>=0;q--) 
    myChoices.qk.options[q] = null;
     }
      // 如果没有值的话,加入默认的空值下拉选项
      myEle = document.createElement("option") ;
      myEle.value = "" ;
      myEle.text = "     " ;
      controlToPopulate.add(myEle) ;
      // 通过循环
      // 加入二级与三级下拉菜单的
      // 显示内容
      for ( x = 0 ; x < ItemArray.length  ; x++ )
    {
      if ( GroupArray[x] == control.value )
    {
      myEle = document.createElement("option") ;
      myEle.value = GroupValue[x] ;
      myEle.text = ItemArray[x] ;
      controlToPopulate.add(myEle) ;
    }
    }
    }
    //  End -->
    </script>
    <%
    End Sub
    %>
      

  4.   

    谢谢大家的回复,在网上我也找了很多关于连动的列子,不过大都是静态和asp、xml的,我对asp和xml不太懂,jsp也是初学,所以要麻烦各位了。我把两个列表的bean文件贴出来吧,主要是想知道选中mode的时候,如何把mode的编号传到functionid里然后根据mode读出对应的functionid:
     /*
      读取系统模块列表
      */ public String listControl_Select(String s_mode) throws SQLException
    {
    Tools tool=new Tools();
    DBConn conn=new DBConn();
    String reString="";
    String sql="select mode,modename from control order by mode";
    String mode="",modename="";
    ResultSet rs=null;
    rs=conn.executeQuery(sql);
        reString+="<select name=mode><option value=''></option>";
            while(rs.next()){
                mode=rs.getString("mode");
                modename=rs.getString("modename");
                reString+="<option value="+mode ;
    if(s_mode.equals(mode)){
    reString+=" selected";
    }
    reString+=">"+modename+"</option>";
            }
            reString+="</select>";
    conn.close();
    return reString;
    }  /*
      读取系统子模块列表
      */ public String listFunctionControl_Select(String s_functionid) throws SQLException
    {
    Tools tool=new Tools();
    DBConn conn=new DBConn();
    String reString="";
    String sql="select functionid,functionname from functioncontrol order by functionid";
    String functionid="",functionname="";
    ResultSet rs=null;
    rs=conn.executeQuery(sql);
        reString+="<select name=functionid><option value=''></option>";
            while(rs.next()){
                functionid=rs.getString("functionid");
                functionname=rs.getString("functionname");
                reString+="<option value="+functionid ;
    if(s_functionid.equals(functionid)){
    reString+=" selected";
    }
    reString+=">"+functionname+"</option>";
            }
            reString+="</select>";
    conn.close();
    return reString;
    }
      

  5.   

    你可以用xhtml,在写一个jsp来作取值的操作,然后把值传回来,这样可以避免刷叶面