在我的servlet在我的数据库上运行查询后,我试图回忆一个下拉框的选定值。
变量没有限制,所以我使用c:foreach
来填充下拉列表。
代码如下
function moduleLookup() {
var trainId = document.getElementById("Selector").value;
document.trainForm.trainId.value = trainId;
document.trainForm.submit();
}
<select id="Selector" onchange="moduleLookup()" onchange=storeValues()>
<option value="/javaTrainingServletProject/UserAdministration?id=0">Select module</option>
<option value="0">All Modules</option>
<c:forEach items="${modules}" var="module">
<option value="${module.id}">${module.title }</option>
</c:forEach>
</select>
我已经尝试了所有可以找到的方法来刷新下拉以获得之前选择的值。我曾尝试添加cookie数据,但我是jquery的新手。
答案 0 :(得分:0)
在监听器中,您可以使用 this 传递对该元素的引用:
<select id="Selector" onchange="moduleLookup(this)" ...>
然后在你可以做的功能中:
function moduleLookup(select) {
var trainId = select.value;
...
}
另请注意,要成功(因此与表单一起提交),表单控件必须具有名称。 select元素只有一个id(现在应该是多余的,所以请把它命名)。
如果要恢复所选值,可以存储selectedIndex并稍后恢复。如果您要提交表单,页面将会刷新,因此您可以在生成HTML时设置相应的选项selected attribute。