我现在实现分页每页显示多少条数据,从数据库中获得,我每次选中下拉列表的时候都会自动跳到第一个,然后就回不到第一个了,我没有将第一个设为selected.
具体代码如下:
<select   name="perpage" onchange="doaction(this.options.selectedIndex)">
<option value="10">10</option>
<option value="25">25</option>
<option value="50">50</option>
<option value="100">100</option>
</select>function doaction(object){var form=document.forms[0];
var option=form.perpage.options;
document.getElementById("perpage").value=option[object].value;
option[object].selected="selected";
form.action="adminPage.do?action=list";
form.submit();
}数据能获得到,请大家不吝赐教~~~万分感谢!!

解决方案 »

  1.   

    <form action="adminPage.do?action=list" ..........
    <select name="perpage" onchange="this.form.submit()">
    <option value="10">10</option>
    <option value="25">25</option>
    <option value="50">50</option>
    <option value="100">100</option>
    </select></form>
      

  2.   

    谢谢,我外面有form,action为空的,在JS中指定action的地址,我换成这样列表还是自动跳到第一个了
      

  3.   

    <select name="perpage" onchange="doaction(this.form)">
    <option value="10">10</option>
    <option value="25">25</option>
    <option value="50">50</option>
    <option value="100">100</option>
    </select>function doaction(form){
    form.action="adminPage.do?action=list";
    form.submit();
    }
      

  4.   

    不知道我理解的对不对
    perpage在你选的时候提交到了后台,form中已经有值了,再返回前台时,值被带了回来,导致你的下拉列表默认成了你选的那个值
      

  5.   

    返回前台时放在request中
    或者将perpage放在session中
      

  6.   

    太感谢大家了,我解决了,问题是,我选每页显示多少条,从数据库返回数据后,页面更新了,连同下拉表也更新了,回到默认状态,而我将返回的perpage,也就是从页面传过去的值,在页面中与每一个option的value做个对比,相等就使该下拉项显示,终于解决了,非常感谢!!我刚开始还以为是IE的一个BUG,我看到有些地方没有用这种方法也实现了。
    <select   name="perpage" onchange="doaction(this);" size="1">

    <option <c:if test="${pages.perpage==5}">selected</c:if> value="5">5</option>
    <option <c:if test="${pages.perpage==10}">selected</c:if> value="10">10</option>
    <option <c:if test="${pages.perpage==25}">selected</c:if>  value="25">25</option>
    <option <c:if test="${pages.perpage==50}">selected</c:if> value="50">50</option>
    <option value="100" <c:if test="${pages.perpage==100}">selected</c:if>>100</option>
    </select>
    这个方法我觉得在下拉项挺多的额时候有点不适用,每一个都去对比,会影响效果,希望大家能有更好的方法。