HTML之select下拉框:預設值設定
阿新 • • 發佈:2021-01-22
當我們做web專案時,總是會碰到的一種情況是下拉框的使用,提交資料很簡單,但是資料的回顯就會遇到一些問題:
我們在資料回顯時,期望下拉框預設顯示的是這條資料選擇的選項。
舉個例子:
有一篇博文,我上傳時設定的博文分類是:原創;
但是分類有:原創、轉載等;
下拉框預設顯示的應該是:請選擇;
資料回顯時期望顯示的是:原創;
其實這個問題很簡單,就是預設顯示誰的問題。
如果我們什麼都不設定,預設顯示的是c:for遍歷出來的第一個資料。
如果設定預設值的話,selected屬性就可以幫我們實現:
<select name="type" class="type"> <c:forEach items="${type}" var="t"> <option value="${t.typeId}" selected="selected">${t.typeName}</option> </c:forEach> </select>
此時的設定很明顯會預設顯示:遍歷資料的最後一個。因為前邊的selected屬性都被最後一個覆蓋了。
而我們的需求是:期望下拉框預設顯示的是這條博文原來選擇的原創選項。
略加嘗試,selected=“selected”這個表示式可不可以設定別的值?比如:
<select name="type" class="type"> <c:forEach items="${type}" var="t"> <option value="${t.typeId}" selected="${blogInfor.blogType}">${t.typeName}</option> </c:forEach> </select>
此時是這樣子的:
c標籤仍然會繼續遍歷給出的t,但是生成的每一個option都附帶一個selected標籤,這個標籤的值是給定的博文型別,是通過el表示式獲取到的;
那麼不難想到,selected的值一定是博文原來選擇的型別,當然,前提條件是:selected屬性可以設定出了selected之外的值。
經過測試,此法完全可行:
- selected可以設定出了selected之外的值;
- 下拉框的預設值設定成了el表示式傳過來的值;
所以,我們的需求可以得到滿足了。
結果圖如下: