layui中select实现二级关联

目的:实现店铺和仓库的二级关联,通过选择不同的店铺,来显示这个门店对应的库位信息。

 

1. 在select选项上添加lay-filter选择器。

<div class="layui-inline">
    <label class="layui-form-label-sm">店铺</label>
    <div class="layui-input-inline-sm">
        <select name="siteId" id="siteId" lay-filter="site">
            <option value="">全部</option>
            <c:forEach items="${siteList}"  var="item" varStatus="status">
                <option value="${item.id }">${item.remark}</option>
            </c:forEach>
        </select>
    </div>
</div>


<div class="layui-inline">
    <label class="layui-form-label-sm">库位</label>
    <div class="layui-input-inline-sm">
        <select name="repositoryId" id="repositoryId" lay-filter="repository">
        </select>
    </div>
</div>

 

2. 添加事件监听器,监听店铺选择事件

1)form.on实现监听

2) select(site) 选择监听site这个filter

3) data.value即选择的值

4)ajax查询后台获取id为data.value的对应的仓库集合

5)遍历json,拼接 option选择项。

6)$('#repositoryId').append(repositoryHtml);   // 将拼接结果加入到仓库的选项中

7)renderForm(); //重新渲染form

//监听select
form.on('select(site)',function (data) {
    $.ajax({
        type: 'get'
        ,url: ctx+'/repository/getComboxList'
        ,data:{'siteId':data.value}
        ,success:function(res){
            var repositoryHtml = '';
            var resJson = $.parseJSON(res);
            for(i in resJson){
                repositoryHtml += '<option value="'+resJson[i].id + '">' + resJson[i].locName + '</option>';
            }
            $('#repositoryId').html('').append("<option value=\"\">全部</option>");
            $('#repositoryId').append(repositoryHtml);
            $("#repositoryId").find('option:eq(1)').attr('selected', true);

            renderForm();  //需要重新渲染
        }
    });
})

 

renderForm()

function renderForm() {
    layui.use('form',function () {
        form.render('select');
    })
}

 

posted @ 2019-11-09 19:27  硅谷工具人  阅读(3671)  评论(0编辑  收藏  举报
成功之道,在于每个人生阶段都要有不同的目标,并且通过努力实现自己的目标,毕竟人生不过百年! 所有奋斗的意义在于为个人目标实现和提升家庭幸福,同时能推进社会进步和国家目标! 正如古人讲的正心诚意格物致知,修身齐家治国平天下。