2014-12-10 127 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