我的html页面分为两部分,包含侧边栏和内容,在侧边栏中我有两个下拉框,一个用于学年,另一个用于在第一个下拉列表中选择的各学年的学生姓名,其次是提交按钮。当我点击提交按钮时,它将重定向到下一页,下一页也看起来相同但在内容页面中显示选定的学生档案,在侧栏中,同样的两个下拉列表将在那里。我在这里遇到的问题是,首先我会选择学年和名字。它很好,当它进入下一页时,下拉菜单将处于初始阶段,但我希望所选年份和名称显示在下拉框中,我该怎么做?
有人建议我在下一页设置下拉列表的值后保持会话中选择的值。
以下是我的下拉代码,
<select style='width: 200px;'
id="combo_zone11" name="alfa1">
<c:forEach var="grade" items="${gradeInfo}">
<option id='syear' value="" selected="selected">
<option value=${grade.getDropDownId()}>${grade.getDropDownName()}</option>
</c:forEach>
</select>
如何在下一页下拉菜单中保留所选值。请帮助我。
答案 0 :(得分:0)
你可以通过多种方式做到这一点。
由于您在java中工作,您可以将所选值设置为隐藏字段,并在重定向到下一页时,您可以将值设置为请求对象。
或者,如果目标浏览器支持HTML5 localStorage,您可以使用它 - 在下拉列表更改时,使用javascript将所选选项保存到本地存储。在第二页加载事件中,从本地存储中获取值并分别设置下拉列表。
像 -
//Script in page1
window.onload = function(){
var dd = document.getElementById('combo_zone11');
dd.addEventListener('change',function(){
localStorage.setItem('ddValue', this.value)
});
}
//Script in page2
window.onload = function(){
var ddValue= localStorage.getItem('ddValue');
var dd= document.getElementById('combo_zone11');
for(var i = 0;i < dd.options.length;i++){
if(dd.options[i].value == ddValue ){
dd.options[i].selected = true;
break;
}
}
}
你也可以使用cookies,sessionStorage,queryStrings等每种方法都有自己的优点和缺点......
答案 1 :(得分:0)
通过传递ID
来使用select=selected
喜欢
<option value="${GroupLi.partyClassificationTypeId if_exists}" selected="selected"> ${GroupLi.description?if_exists}</option>
GroupLi是用于迭代的列表名称 为:
<#list Group as GroupLi>