例:a.jsp
<% Records = Integer.parseInt(request.getParameter("records"));%><select style="width:50" name="selrecords" onchange="">
  <option value="5">5</option>
  <option value="10">10</option>
  <option value="15">15</option>
</select>若要在「a.jsp」本页就可收到option的变换值,onchange该如何写?

解决方案 »

  1.   

    select 外加表单,然后:
    <select onchange="表单名.submit()">
      

  2.   

    <script language="javascript">
     function getval()
     {
       alert(document.f1.selrecords.value);
      }
    </script>
    <html>
    <form name="f1">
    <select style="width:50" name="selrecords" onchange="getval()">
      <option value="5">5</option>
      <option value="10">10</option>
      <option value="15">15</option>
    </select>
    </form>
    </html>
      

  3.   

    不是在javascript中显示,而是要在本「JSP」中显示。
      

  4.   

    <% int Records = Integer.parseInt(request.getParameter("selrecords"));%>
    <form name="frm" action="a.jsp" method="post">
    <select style="width:50" name="selrecords" onchange="" onChange="frm.submit()">
      <option value="5">5</option>
      <option value="10">10</option>
      <option value="15">15</option>
    </select>
    <input name="text" type="text" value=<%=Records%>>
    </form>
    在text中就能显示出option的内容了。
      

  5.   

    <input type=hidden  name="old">
    onChange="document.getElementById('old').value = document.getElementById('selrecords').value;frm.submit()"
    然后用request来得到
      

  6.   

    楼上的,你给出的程序,在text中能显示出option的内容可是下拉select自身确不能正常显示出option的值,选值不变了。
      

  7.   

    错了,我说的是liruizhi1024()那段程序。
      

  8.   

    现在onchange发出的値能正常显示。可在下拉select自身的値为何不变了?总是指在第一个。Why?
      

  9.   

    onchange()方法提交到本页就OK了
    document.form.submit();
      

  10.   

    <body>
    <% 
    int Records = 5;
    if(request.getParameter("selrecords")!=null)
    Records = Integer.parseInt(request.getParameter("selrecords"));
    %>
    <form name="frm" action="a.jsp" method="post">
    <select style="width:50" name="selrecords" onChange="frm.submit()">
      <option value="5" <%if(Records==5){%>selected<%}%>>5</option>
      <option value="10" <%if(Records==10){%>selected<%}%>>10</option>
      <option value="15" <%if(Records==15){%>selected<%}%>>15</option>
    </select>
    <br>
    <input name="text" type="text" value=<%=Records%>>
    </form>
    </body>这样就行了。
      

  11.   

    <body>
    <form name="frm" action="test1.jsp" method="post">
    <select style="width:50" name="selrecords" onChange="document.getElementById('text').value = document.getElementById('selrecords').value;">
      <option value="5">5</option>
      <option value="10">10</option>
      <option value="15">15</option>
    </select>
    <br>
    <input name="text" type="text" value=5>
    </form>
    </body>这样写也可以实现!
      

  12.   

    谢谢liruizhi1024和诸位!下拉框自身的値为何总是指在第一个的原因也明白了,因再回到本页时被自动刷新。<%
    pageRecord = 5;
    if (request.getParameter("records")!=null) {
      pageRecord = Integer.parseInt(request.getParameter("records"));
    }
    String forward_page="a.jsp";
    %>
    <form name="frm1" action="/web1/servlet1" method="post">
    每页表示的记录数
    <select style="width:40" name="selrecords" 
      onchange="window.location=this.options[this.selectedIndex].value">
      <option value="<%=forward_page%>?records=5">5</option>
      <option value="<%=forward_page%>?records=10">10</option>
      <option value="<%=forward_page%>?records=15">15</option>
        <SCRIPT Language=javaScript><!--
          Reset_SelIndex(document.frm1.selrecords,'<%=pageRecord%>');
        //--></SCRIPT>
    </select>
    </form><script LANGUAGE="javascript">
      function Reset_SelIndex(obj,val) {
        for (i=0; i<obj.length; i++) {
          if (obj.options[i].text==val) {
            obj.options.selectedIndex = i;
            return;
          }
        }
        obj.options.selectedIndex = 0;
      }
    </script>