我在一个JSP文件里做了个二级级联菜单,也可以正常工作了。可如何取得第二级菜单已选定的值呢?我看了,因为第二级菜单中的值是通过js来赋的值,就取不到选定的值,(第一级菜单因是通过JSP直接在select里赋的,就可以取到选定的值的)高手帮我看看该怎么做啊??<script type=text/javascript> 
var onecount; 
onecount=0; 
subcat = new Array(); 
        <% 
        int count = 0; 
        while(rs_mysql.next()){ 
%> 
        subcat[<%=count%>] = new Array('<%=rs_mysql.getString("description")%>','<%=rs_mysql.getString("type")%>'); 
        <% 
        count++; 
        } 
        rs_mysql.close(); 
        %> 
onecount=<%=count%>; <!--决定select显示的函数--> 
function changeType(product_type) 
    { 
    document.myform.SecId.length = 0; 
    var product_type=product_type; 
    var i; 
    for (i=0;i < onecount; i++) 
        { 
            if (subcat[i][1] == product_type) 
            { 
                document.myform.SecId.options[document.myform.SecId.length] = new Option(subcat[i][0]);

            }        
        } 
        
    }    

</script> <FORM method=POST name=myform action=retail_business_management_view.jsp target="view">  <TABLE> 
   
    <TR> 
      <TD>TYPE</TD> 
      <TD>  
 
        <SELECT name=classId onChange=changeType(document.myform.classId.options[document.myform.classId.selectedIndex].value) size=1> 
          <OPTION selected value></OPTION> 
          <%
          sql_mysql = "SELECT distinct type FROM mis_system_items ORDER BY type DESC";
  rs_mysql = stm_mysql.executeQuery(sql_mysql);
  while (rs_mysql.next())
  {
  %>
  <OPTION value=<%=rs_mysql.getString("type")%>><%=rs_mysql.getString("type")%></OPTION> 
  <%
  }
  %>
         </select>       </TD> 
 
      <TD>Description</TD> 
      <TD> 
 
        <SELECT name=SecId> 
          <OPTION selected value></OPTION> 
        </SELECT> 
      </TD>       </TR>

</TABLE> 
  
</FORM> 

解决方案 »

  1.   

    即使是js生成的,应该也是可以得到,用request.getParameter("SecId")不可以吗?
      

  2.   

    取显示的值:
    document.getElementByName("SecId").options[document.getElementByName("SecId").selectedIndex].text;
    取实际的value:
    document.getElementByName("SecId").options[document.getElementByName("SecId").selectedIndex].value;
      

  3.   

    汗水了,JS生成的也有NAME属性吧?提交以后当然能取到啊,除非你没选
      

  4.   

    JS和一般的取值几乎一样的!有name属性就行!
      

  5.   


    这样子在<script>里去取值,但说网面上有错(错误:对象不支持此属性或方法)。请帮我改正,谢谢谢谢!<script>
      function sendToline()
      {
      var desc;
      desc = document.getElementByName("SecId").options[document.getElementByName("SecId").selectedIndex].text;
      }
    </script>页面上是有一个button来调用这个js的。
    <input name="submit" type="button" value="submit" onClick=sendToline()>
      

  6.   

    select不支持用name来取值吧,换ID吧
    如果你是后台拿不到值,是因为你new Option的时候只给了text值,没给value值如果是js拿值,这么写<script> 
      function sendToline(number) 
      { 
      var desc; 
      desc = document.getElementId("SecId").options[number].text; 
      } 
    </script> 页面上是有一个button来调用这个js的。 
    <input name="submit" type="button" value="submit" onClick=sendToline(this.form.SecId.selectedIndex)>
      

  7.   

    第二个Select取个ID叫Select2 
    document.getElementById("select2").value就可以了
      

  8.   

    非常感谢大家的帮助,特别是Valen_jia 和 nicholas的帮助,成功了,看来就要用ID哈!