重新调用下拉列表的选定值

时间:2014-12-10 23:03:01

标签: javascript html

在我的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的新手。

1 个答案:

答案 0 :(得分:0)

在监听器中,您可以使用 this 传递对该元素的引用:

<select id="Selector" onchange="moduleLookup(this)" ...>

然后在你可以做的功能中:

function moduleLookup(select) {
  var trainId = select.value;
  ...
}

另请注意,要成功(因此与表单一起提交),表单控件必须具有名称。 select元素只有一个id(现在应该是多余的,所以请把它命名)。

如果要恢复所选值,可以存储selectedIndex并稍后恢复。如果您要提交表单,页面将会刷新,因此您可以在生成HTML时设置相应的选项selected attribute