我這邊是要做一個部門的下拉框選擇,首先我從后台查詢出所以的部門。再通過json傳到前端用$.each()循環遍歷,再通過prepend,append等方法賦值下拉框。
但一切都覺得沒問題的時候,結果就是渲染不上。其實原因很簡單就是我忘記加 form.render('select'); //刷新select選擇框渲染,這個小小問題耽誤了我半天的時間;怪自己不仔細看文檔。
=====html代碼
<div class="layui-inline"> <label class="layui-form-label">部門名稱</label> <div class="layui-input-inline" > <select name="depName" id="selectDep"> </select> </div> </div>
====jq渲染代碼
$(function () { $.get("${pageContext.request.contextPath}/emp/depName",{},function (data) { $("#selectDep").prepend("<option value='' class='layui-input'>未選擇</option>"); $.each(JSON.parse(data),function (index,item) { $("#selectDep").append("<option value='"+item+"' >"+item+"</option>") }); //最終的賦值填空是依賴這句話 (也就是少了這句話) layui.form.render("select"); }); });
=====后台java代碼
/** * 查詢所有部門名稱 * * @return */ @RequestMapping("/depName") @ResponseBody public List depName() { Map map = new HashMap(); //查詢所有部門 List<DeptVo> deptVos = dept.selectAll(); //因為我們只需要部門名稱就行,所以我們只存部門名稱. List<String> dpeNames = new ArrayList(); //把部門名稱遍歷出來,存到dpeNames集合里面去 for (int i = 0; i < deptVos.size(); i++) { DeptVo deptVo = deptVos.get(i); dpeNames.add(deptVo.getDepName()); } return dpeNames;
