1. 程式人生 > >多行的資料中根據物件欄位給各個radio設值

多行的資料中根據物件欄位給各個radio設值

開發中經常遇到這種情況: 後臺傳一個集合到頁面,我們需要遍歷它,常見使用<c:foreach>進行, 對各個欄位設定值。

那麼對於radio這種怎麼處理? 當然是是使用js來完成,該例子使用Jquery解決。

如下圖一個超級簡單的頁面, 整理筆記的時候比較少,沒來得及寫個像樣點的頁面哈

一共有三個欄位: 描述  備註  是否受理(boolean型別的,開發需求 需要使用radio在頁面中顯示)

解決思路如下

1. 使用<c:foreach item="${list}" var="ele">,我們可以獲取到遍歷的每一個元素

2. 給這些radio加上一個自定義屬性,使其與每個元素的主鍵關聯起來(即一個元素對應同一行的radio對)

3. 根據元素物件的欄位,通過js, 設定radio是否選中

<c:forEach items="${list}" var="ele">
                <tr>
                    <td>${ele.thedescribe}</td>
                    <td>${ele.remarks}</td>
                    <td>
                        <input data-tag="radio_${ele.id}" type="radio" value="0">否
                        <input data-tag="radio_${ele.id}" type="radio" value="1">是
                    </td>
                </tr>
                <script>
                    $(function () {
                        //注意,該js程式碼片段只能寫在<c:foreach>裡面,因為這裡才有${ele}
                        if (${ele.state}) {
                            $("input[data-tag='radio_${ele.id}'][value='1']").attr("checked", true);
                        } else {
                            $("input[data-tag='radio_${ele.id}'][value='0']").attr("checked", true);
                        }
                    });
                </script>
            </c:forEach>