<form target="new_f" onChange="maintain_sales_target_2.jsp">
指标期间
  <select name=de_period>
  <%
  while(rs_period.next())
  {
  %>
  <option value=<%=rs_period.getString("cycle")%>><%=rs_period.getString("cycle")%></option>
  <%
  }
  %>
  </select></form>我是JSP里只有这个,大家说当选择有变化后,会在new_f这个frame里运行maintain_sales_target_2.jsp吗? 现在变动选择值是没有反应的,还要有什么呢? 谢谢!

解决方案 »

  1.   

    new_f是我在上一个JSP就定义好的一个frame...
      

  2.   

    有submit吗?,看页面上好像没有
      

  3.   

    搞错了,JSP原来写的是:<form action="maintain_sales_target_2.jsp" target="new_f">
    指标期间
      <select name=de_period onChange="maintain_sales_target_2.jsp">
      <%
      while(rs_period.next())
      {
      %>
      <option value=<%=rs_period.getString("cycle")%>><%=rs_period.getString("cycle")%></option>
      <%
      }
      %>
      </select></form>
      

  4.   


    就是想下拉菜单值变化时在new_f里自动运行maintain_sales_target_2.jsp.....楼上的看看怎么办哈~~
      

  5.   


    <form target="new_f" >指标期间 
      <select name=de_period onChange="change()"> 
      <% 
      while(rs_period.next()) 
      { 
      %> 
      <option value= <%=rs_period.getString("cycle")%>> <%=rs_period.getString("cycle")%> </option> 
      <% 
      } 
      %> 
      </select> </form> //这里写在javascript里面,当上面改变值时调用这个
    function change()
    {
    document.getElementById("frame1").src = "/maintain_sales_target_2.jsp";
    }
      

  6.   

    上面那个frame1是你在那个frame里面想要改变的页面 要取一个id=”frame1“
      

  7.   

    辉好,
    我这样做了,但在值改变时,maintain_sales_target_2.jsp并没有运行,JSP页面没有任何反映请再帮我看一看吧。下面是定义frame的JSP:
    <frameset rows="50,*" framespacing="0" frameborder="1" border="0">
       <frame src="maintain_sales_target_1.jsp" frameborder="NO" scrolling="auto" noresize>
       <frame src="blank_green.htm" name="new_f" frameborder="NO" scrolling="auto" noresize>
    </frameset>下面是maintain_sales_target_1.jsp:
    <%@ page contentType="text/html;charset=gb2312" %>
    <%@ page pageEncoding="gb2312"%>
    <%@ page import="java.sql.*" %>
    <%@ include file="connection.jsp" %>
    <%
    String sql = "select cycle from mis_gen_cycles";   
    ResultSet rs_period=stm.executeQuery(sql);
    %><form target="new_f">
    指标期间
      <select name=de_period onChange="change()">
      <%
      while(rs_period.next())
      {
      %>
      <option value=<%=rs_period.getString("cycle")%>><%=rs_period.getString("cycle")%></option>
      <%
      }
      %>
      </select></form><script language="javascript">
    function change() 

    document.getElementById("new_f").src = "/maintain_sales_target_2.jsp"; 
    }
    </script></html>
      

  8.   

    用框架不能用getElementById('new_f');
    你的那个<frame name='frame' ...>要这样写。。才能得到这个狂架啊
    应该是getElmelentById('frame1' );
      

  9.   

    大家帮我看看错在什么地方<JSP可运行,但运行后页面报错:'document.getElementById(...)'为空或不是对象>,
    应该怎么改吧? 谢谢!先运行的是 maintain_sales_target.jsp 如下:
    <%@ page contentType="text/html;charset=gb2312" %>
    <%@ page pageEncoding="gb2312"%>
    <html>
    <title>销售指标维护</title>
    <frameset rows="60,*" framespacing="0" frameborder="1" border="0">
       <frame src="maintain_sales_target_1.jsp" frameborder="NO" scrolling="auto" noresize>
       <frame name="frame1" frameborder="NO" scrolling="auto" noresize>
    </frameset>
    </html>下面的是maintain_sales_target_1.jsp:
    <%@ page contentType="text/html;charset=gb2312" %>
    <%@ page pageEncoding="gb2312"%>
    <%@ page import="java.sql.*" %>
    <%@ include file="connection.jsp" %>
    <%
    String sql = "select cycle from mis_gen_cycles";   
    ResultSet rs_period=stm.executeQuery(sql);
    %><html><form>
    指标期间
      <select name=de_period onChange="change()">
      <%
      while(rs_period.next())
      {
      %>
      <option value=<%=rs_period.getString("cycle")%>><%=rs_period.getString("cycle")%></option>
      <%
      }
      %>
      </select></form><script language="javascript">
    function change() 

    document.getElementById("frame1").src = "/maintain_sales_target_2.jsp"; 
    }
    </script></html>
      

  10.   

    'document.getElementById(...)'为空或不是对象把详细的给出来,得不到哪个element
      

  11.   

    <frame name="frame1" id='frame1' frameborder="NO" scrolling="auto" noresize> //指定上id或者直接document.frame1.src="/maintain_sales_target_2.jsp"; 
      

  12.   


    加了ID,运行后结果一样,错误也一样:'document.getElementById(...)'为空或不是对象 按“或者直接document.frame1.src="/maintain_sales_target_2.jsp"; ”来改后,出错信息成了:'document.frame1'为空或不是对象貌似就是找不到frame1啊再强调一下,这里有二个JSP,前一个JSP定义了frame1,后一个JSP按SELECT的值变动与否来运行maintain_sales_target_1.jsp......
      

  13.   


    同意,你的源代码中frame是没有id的,但你却用document.getElementById(),那肯定是会报错的。
    13楼的哥们说的对
      

  14.   


    写错了一个数字。。 :-(再强调一下,这里有二个JSP,前一个JSP定义了frame1,后一个JSP按SELECT的值变动与否来运行maintain_sales_target_2.jsp......
      

  15.   

    我自己试了一下,13楼的确实不行,你把你的change()方法改成下面这个样子就可以了<script language="javascript">
        function change()
        {
            top.frames["frame1"].location = "/maintain_sales_target_2.jsp";
        }
    </script>
      

  16.   

    top.frames["frame1"].location
    top就是获得当前frame所在的顶层页面
    top.frames["frame1"]就是获得top页面中name为frame1的frame
    top.frames["frame1"].location就是把指定的frame的页面内容换成指定网页的内容
      

  17.   

    哈哈,谢谢大家,特别是tavor的代码。已经有反应了。
    只是<SELECT>里的值de_period的值在onchange后的maintain_sales_target_2.jsp中没有接收到。下面是maintain_sales_target_2.jsp:
    <%
    String de_period = request.getParameter("de_period");
    String sql = "select users_name,period_cycle,target_sales from mis_sales_target mst,mis_users mu where mst.sales_id = mu.users_id and period_cycle = '"+de_period+"'";   
    ResultSet rs_mysql=stm.executeQuery(sql);
    %>
    感觉就是这句String de_period = request.getParameter("de_period");没从上一个maintain_sales_target_2.JSP中接收到de_period的值。
    1.jsp中有FORM但没有SUBMIT,就是通过change()转到2.jsp来的,请问怎么解决这个问题呢???急!!!
      

  18.   

    关键在于你没设置frame的id属性阿
      

  19.   

    已经完成了那个更改啊,maintain_sales_target_2.JSP已经运行了,只是没有从maintain_sales_target_1.JSP接收到de_period的值
      

  20.   

    那再改成下面这个样子<script language="javascript"> 
        function change() 
        { 
            var period_val = document.getElementsByName("de_period")[0].value
            top.frames["frame1"].location = "/maintain_sales_target_2.jsp?de_period="+period_val; 
        } 
    </script> 
      

  21.   

    然后再在maintain_sales_target_2.jsp页面中再从request中取出来就可以了