2013-12-13 28 views
0

我在JSP頁面上工作,我需要始終在該JSP頁面上顯示選定的下拉列表值。下面是我的例子 -如何在頁面加載時首次在JSP上顯示下拉列表的第一個值?

<p style="font-weight: bold">Limit</p> 
<select id="limit" name="limit"> 
    <option value="10">10</option> 
    <option value="20">20</option> 
    <option value="50">50</option> 
    <option value="100">100</option> 
</select> 

第一次當我的頁面被加載時,我想顯示從上面的下拉列表中選擇的10值。現在,如果我選擇從上面的下拉列表中20並提交表單,我需要保持下拉列表中的狀態總是顯示下拉列表20,所以,我用下面的代碼 -

<% 
String limit = request.getParameter("limit"); 
%> 
<script> 
document.getElementById("limit").value = '<% out.print(limit); %>'; 
</script> 

但不知何故,每當我第一次加載我的網頁,我總是看到Limit下拉框的空白字段,然後如果我從該下拉列表中選擇20並再次提交表單,那麼我可以在該下拉列表中看到20 selected,並且如果我選擇50,然後再次提交表單,然後再次,我可以看到在該下拉列表中選擇了50。

唯一的問題是,當我第一次加載頁面時,它總是在下拉列表中顯示空白字段作爲選定值,這不是我想要的,我希望每當頁面時自動選擇第一個10首次加載。

回答

1

您的代碼中沒有「默認」分配,因此您的值分配將limit的值(在首次加載頁面時爲空)指定給下拉列表。聽起來這是導致一個空白選項。

您有兩種選擇。第一:如果現有的值中的一個應該是默認的,將其分配到limit如果沒有價值,它:

<% 
String limit = request.getParameter("limit"); 
limit = (limit == null) ? DEFAULT_VALUE : limit; 
%> 

或者,如果現有的值之一是不適合默認情況下,你應該在你的選項列表中提供一個空的選擇:

<select id="limit" name="limit"> 
    <option value="">-- SELECT ONE --</option> 
    <option value="10">10</option> 
    <option value="20">20</option> 
    <option value="50">50</option> 
    <option value="100">100</option> 
</select> 

希望這有助於。

請注意:通過插值的limit值到您的網頁,你違反了網絡安全的首要規則:永遠不要回聲用戶輸入到頁面上,沒有它解除污染。考慮如果將script標記包含爲limit的值,會發生什麼情況...

1

第一頁加載沒有請求參數集。一個簡單的解決方案可能是:

<% 
String limit = request.getParameter("limit"); 
if (limit == null) { 
    limit = "10"; 
} 
%> 
1

您可以添加在你<script>條件:

<% if (limit != null) { %> 
... 
<% } %> 

或者你可以使用jQuery(它幾乎總是與JavaScript的一個不錯的選擇),其選擇的方法<option>不會產生這種效果。

1

使用JavaScript是很酷的事情,但你可以實現選擇與HTML功能看看<option selected ...>說明在http://www.w3schools.com/tags/tag_option.asp

所以你的JSP可以寫成:

<select id="limit" name="limit"> 
<option value="10" selected>10</option> 
相關問題