2014-12-10 92 views
0

我试图在我的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

代替值,存储[* options.selectedIndex *](http://www.w3.org/html/wg/drafts/html/master/forms.html#dom-select-selectedindex),然后设置相同的选项以稍后选择。 – RobG 2014-12-10 23:11:35

+0

'c:forEach'不是有效的HTML,所以这个问题有一些缺失... – 2014-12-10 23:18:59

+0

@MikeMcCaughan是不是(老)角? – 2014-12-10 23:27:44

回答

0

在监听器,你可以通过该元素使用参考:

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

然后在功能,你可以这样做:

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

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

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