比如说,第一个下拉框里面是信息学院,艺术学院,文法学院,如果选了信息学院,那么第二个下拉框里的选项就应该是计算机,自动化,通信……,如果第一个下拉框选的是艺术学院,那么第二个下拉框里的选项就应该是音乐,美术……。
ps:是用struts中的html标签

解决方案 »

  1.   

    <input type="select" name="" onChange="js();"><script language="javascript">
        function js() {
        ...........
        }
    </script>
      

  2.   

    为什么会出现下面的错误信息?
    Attribute onChange invalid according to the specified TLD
      

  3.   

    struts中的html标签,支持onChange这个动作吗?
      

  4.   

    http://expert.csdn.net/Expert/search.asp?bigclassid=0&smallclassid=5409
    察看源代码吧这只是一种方法,如果你想从数据库里面提取出来的话,可以当前面的onchange时提交一下检索出来后面的下拉列表的值祝你好运
      

  5.   

    struts中的html标签   不会!我们还是用js实现的!
      

  6.   

    将相关连的选项放到javascript定义的数组里,然后对相关的选项通过定义onChange事件进行联动,这样速度较快
      

  7.   

    <HTML>
    <HEAD>
    <TITLE></TITLE>
    <SCRIPT LANGUAGE=javascript>
    <!--
    function doChange()
    {
        doAddOption(select1.value);
    }function doAddOption(s)
    {
        len = select2.options.length;
        if(len > 0)
        {
            for(i=len - 1; i>=0; i--)
                select2.remove(i);
        }    for(i=0; i<4; i++)
        {
            var oOption = document.createElement("OPTION");
            oOption.text=s + "_" + i;
            oOption.value=s + "_" + i;
            select2.add(oOption);
        }
    }
    //-->
    </SCRIPT></HEAD>
    <BODY>
    <SELECT size=1 id=select1 name=select1 language="javascript" onChange="doChange()">
    <OPTION value="a">A</OPTION>
    <OPTION value="b">B</OPTION>
    <OPTION value="c">C</OPTION>
    </SELECT>
    <br>
    <SELECT size=1 id=select2 name=select2>
    </SELECT>
    </BODY>
    </HTML>
      

  8.   

    怎么可以让onchange触发action,然后让action做处理,再送回来?
      

  9.   

    我这里有一个下拉框联动的东东,不知道对你有没有用?
    下拉框联动
    下拉框联动有两个java类,两个jsp页面,和一个js组成。
    MultiSelect.java
    该类用于生成实现联动需要的Array数组
    package select;
    import java.util.*;
    import java.sql.*;
    import java.io.*;
    public class MultiSelect {
        /**
         *产生JavaScript中用于联动的array代码
         *以省市为例
         *一般为了javascript程序的方便,建议输出格式为:
         *subcat1[subcat1.length] = new Array("江阴","12.10","12");
         *其中"江阴"的值为"12.10","12"对应江苏省,越大的范围的值越往后
         *subcat1[subcat1.length] = new Array("常州","12.11","12");
         **/
        public static String getArray(String name, String sql) throws java.sql.SQLException {
            Connection conn=null;
            try {
                Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
                conn = 
    DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test", 
    "test", "test");
            } catch (java.lang.ClassNotFoundException e) {
                System.err.print("ClassNotFoundException: " + e.getMessage());
            }
            Statement stmt = conn.createStatement();
            ResultSet rs=stmt.executeQuery(sql);
            StringBuffer sb = new StringBuffer();
            while(rs.next()){
                sb.append(name + "[" + name + ".length] = new Array(" + 
    getString(rs.getString(0),rs.getString(1),rs.getString(2)) + ");\n");
            }
            return sb.toString();
        }
        private static String getString(String s1,String s2,String s3) {
            String temp = "\"" + s1 + "\",\""+s2+"\",\""+s3+"\"";
            return temp;
        }
    }
    --------------------------------------------------------------------------------
    SelectJS 该类主要是用来生成sql语句。
    package select;
    public class SelectJS {
        /**
         * 写出sql,调用
         * @param name 数组名称
         * @return
         * @throws java.sql.SQLException
         */
        public static String getProducts(String name) throws java.sql.SQLException {
            return MultiSelect.getArray(name,
                                        "select describe,code,fcode from testone "
                                        );
        }
    }
    ---------------------------------------------------------------------------------
    citys.jsp主要是用来得到Array数组
    <%@ page contentType="text/html;charset=GB2312" %>
    <%@ page import="select.*"%>var citys = new Array();
    <%=SelectJs.getDealerCity("citys")%>
    -----------------------------------------------------------------------------------
    select.js 主要是用来显示下拉框中的数据
    function clearselect(Aa){
        clearList(Aa);
        Aa.options[Aa.length] = new Option("没有回答", "");

    //use "" to clear all:(值的索引为1)
    //Aa为被联动的select,
    //locationid为主联动值,
    //arr为用于生成的Array,
    //index1为Array中用于比较主联动值的索引
    function changelocation1(Aa,locationid,arr,index1){
        clearselect(Aa);
        var i;
        for (i=0;i < arr.length; i++){
      if (arr[i][index1] == locationid ){ 
       Aa.options[Aa.length] = new Option(arr[i][0], arr[i][1]);
      } 
     }

     
    //from chinaquest
    function clearList(ctrl){
     if (document.all) {
      for(;ctrl.options.length>0;)
       ctrl.options.remove(ctrl.options.length-1);
     }else{
      for(;ctrl.options.length>0;)
       ctrl.options[ctrl.options.length-1] = null;
     }
    }
    -------------------------------------------------------------------------------------
    selecttest.jsp 进行页面使用
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>无标题文档</title>
    </head>
    <script language="JavaScript" src="citys.jsp"></script>
    <script language="JavaScript" src="select.js"></script>
    <body>
    <form method="post">
     <select name="sel_brand" 
    onchange="changelocation1(this.form.elements['sel_city'],this.value,citys,2);">
     <%
     String sql="select code,Describe from testone ";
     ResultSet rs=stmt.executeQuery(sql);
     while(rs.next()) {
     %>
         <option value="<%=rs.getString(0)%>"><%=rs.getString(1)%></option>
     <% } %>
        </select>
     <select name="sel_city">
     <option value="">没有回答</option>
     </select>
    </form>
    </body>
    </html>