2011-10-04 45 views
2

我對此很陌生,所以請耐心等待。 我有一個值的數據庫,它需要在下拉菜單中設置當前選定的值。這個值作爲請求參數傳遞給前端。我嘗試使用selected =「parameter」屬性與選擇標籤,但似乎沒有工作。我也嘗試過value =「」,沒有結果。 任何幫助表示讚賞。謝謝使用請求參數在下拉列表中選擇一個選項

回答

9

如果您想用<select>中的選定值爲jsp提供服務,請將selected屬性放入相應的option中。

<select id="dropdown"> 
    <option value="1">option 1</option> 
    <option value="2" selected>option 2</option> 
    <option value="3">option 3</option> 
</select> 

使用JSTL標記<c:if>測試對於請求參數和電流值之間的平等。例如,一個名爲selectValue請求參數:

<option 
    <c:if test='${param.selectValue == currentOption}'> selected </c:if> 
> 
</option 

看看詳細內容如下問題:Selected item populating in Select tag using JSTL?

爲了詳細說明這個問題,如果你dinamically構建選項(<c:forEach>)的,而循環的選項,在<option>輸出selected時的電流<option>值等於所述請求參數(代碼未測試):

<select id="dropdown"> 
    <c:forEach var="item" items="${list}"> 
     <option value="<c:out value='${item}' />" 
      <c:if test="${param.selectValue == item})"> selected </c:if> > 
      <c:out value="${item}" /> 
     </option> 
    </c:forEach> 
</select> 

如果選項是靜態的,你可以在每個<option>(未測試的代碼)添加如下內容:

<option value="1" 
    <c:if test="${param.selectValue == 1})"> selected </c:if> > 
    option 1 
    </option> 
    <option value="2" 
    <c:if test="${param.selectValue == 2})"> selected </c:if> > 
    option 2 
    </option> 

如果要設置通過JavaScript所選擇的值,可以使用例如

document.getElementById("dropdown").value = <c:out value='${param.selectValue}'/> 
+0

我需要從請求參數中設置選定的選項。任何想法如何做到這一點? – DaTaBomB

+0

@DaTaBomB查看我對答案所做的更新。 –

+0

我試過你的代碼,其中的選項是靜態的。似乎不工作。任何想法爲什麼? – DaTaBomB

6

至此,只要提交的值與所選值匹配,就需要設置selected屬性只有。 Cleanest會在EL中使用條件運算符?:,因爲使用JSTL <c:if>最終會以笨拙和難以閱讀的代碼結束。

下面是一個例子:

<select name="foo"> 
    <option value="1" ${param.foo == '1' ? 'selected' : ''}>One</option> 
    <option value="2" ${param.foo == '2' ? 'selected' : ''}>Two</option> 
    <option value="3" ${param.foo == '3' ? 'selected' : ''}>Three</option> 
</select> 

請注意:${param.foo}foo必須精確的匹配<select name="foo">名。另請注意,${param.foo}的值必須與<option value>的值完全一致。在其他答案中建議的id的使用在這裏是無關緊要的。這隻與客戶端有關。 ID不被用作請求參數名稱或值。

+0

+1很好學習一個更好的方法來做到這一點。我的jsp技能越來越生疏。 –

相關問題