2013-09-30 277 views
0

我希望能夠選中所有複選框或按鈕或者是罰款,然後將設置所有其他複選框的值進行檢查。有沒有在jsp中實現這一點?我在想是這樣的:在JSP中選擇所有複選框

<c:if test="${!empty param.selectall}"> 
    //set all others to checked 
</c:if> 

我知道病情的作品,因爲我已經用它,但我怎麼去約一個複選框設置爲一個if語句內部檢查。

+0

jQuery解決方案會有幫助嗎?因爲我有jQuery解決方案。 –

+0

感謝您花時間回覆@Aniket我找到了一個使用javascript的解決方案。我想使用jsp cos這就是我最瞭解的。 http://www.youtube.com/watch?v=yzOJbrrZaiI – Crouch

+1

嘗試,這也http://jsfiddle.net/j08691/pzCcE/2/ –

回答

2

看來你不知何故錯過了JSP只是一個HTML代碼生成器的事實。

在HTML中,選中的複選框由checked屬性的存在表示。

<input type="checkbox" ... checked="checked" /> 

您在JSP中需要做的只是生成所需的HTML輸出。

<c:if test="${not empty param.selectall}"> 
    <input type="checkbox" ... checked="checked" /> 
    <input type="checkbox" ... checked="checked" /> 
    <input type="checkbox" ... checked="checked" /> 
    ... 
</c:if> 

或者,如果你寧願不希望重複託運和非託運國全HTML,而只是希望只生成所需的屬性:

<input type="checkbox" ... ${not empty param.selectall ? 'checked="checked"' : ''} /> 
<input type="checkbox" ... ${not empty param.selectall ? 'checked="checked"' : ''} /> 
<input type="checkbox" ... ${not empty param.selectall ? 'checked="checked"' : ''} /> 
... 

或者,如果您實際上有一些收集,你可以遍歷使用<c:forEach>的價值觀和你寧願不希望重複所有HTML輸入元素的每一個值,然後執行:

<c:forEach items="${bean.availableItems}" var="availableItem"> 
    <input type="checkbox" ... value="${availableItem}" ${not empty param.selectall ? 'checked="checked"' : ''} /> 
</c:forEach> 

當終端用戶禁用JS時,無需任何笨拙的JS hack /解決方法。

+0

+1我不知道簡單的解決方案。 –

+0

在javascript中的解決方案很簡單,效果很好,但像你說的@BalusC js可以被禁用,因此,爲什麼我想在jsp中做到這一點,我沒有忘記我可以這樣做我只是在思考問題,因爲我'以前從未做過。 我的大部分代碼都像你的代碼,但更多的是在if語句條件達到時或者在for:each中創建表。 – Crouch