layui 展示页表格中加入下拉选择框

layui 展示页表格中加入下拉选择框

实现效果图:
在这里插入图片描述
1.在初始化表格的列cols中添加:

{
                field: 'paid',
                sort: true,
                title: '付款状态',
                align: "center",
                templet:function (d) {
                    return '<select name="paid" class="sel_xlk" lay-filter="stateSelect"  lay-verify="required" data-state="' + d.paid + '" data-value="' + d.id + '" >' +
                        '        <option value="0">未付款</option>' +
                        '         <option value="1">已付款</option>' +
                        '    </select>';
                },
            },

注意:元素选择器lay-filter=“stateSelect”。
2.选择完下拉框把值带到列表中并提交到后台,

form.on('select(stateSelect)', function (data) {//修改类型
        let id = data.elem.dataset.value; //当前数据的id
        let paid = data.elem.value; //当前字段变化的值
        // 传值:表单变化后的值传递到后台数据库进行实时修改,例如,根据id修改这条数据的状态。
        $.ajax({
            type: 'post',
            url: Feng.ctxPath+ '/******/*****', // ajax请求路径
            data: {
                id: id,
                paid: paid
            },
            success: function(data){
                layer.msg('修改成功');
                //执行重载
                //table.reload('bizInvoiceTable');
                //window.location.href = Feng.ctxPath + '/bizInvoice'
            }
        });
    });

3.我们要刷新表格,并且去掉数据表格对select的隐藏,把select浮现在最外层 在table.render中添加

done: function (res, curr, count) {
            //设置下拉框样式在表格之上 不会遮挡下拉框
            $(".layui-table-body").css('overflow','visible');
            $(".layui-table-box").css('overflow','visible');
            $(".layui-table-view").css('overflow','visible');

            var tableElem = this.elem.next('.layui-table-view');
            count || tableElem.find('.layui-table-header').css('overflow', 'auto');
            layui.each(tableElem.find('select[name="paid"]'), function (index, item) {
                var elem = $(item);
                elem.val(elem.data('state')).parents('div.layui-table-cell').css('overflow', 'visible');
            });
            form.render();//刷新表单

        }

4.设置一下下拉框的样式,进行美化一下

/* 设置下拉框的高度与表格单元相同 */
   td .layui-form-select {
        margin-top: -10px;
        margin-left: -15px;
        margin-right: -15px;
    }

到此就实现layui单元格下拉选择实现
感谢博主:

xjt_beginner

参考链接:https://blog.csdn.net/xjt_beginner/article/details/106138030

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 layui 的 tree 模块和 form 模块来实现一个树形下拉选择。具体实现步骤如下: 1. 在 HTML 定义一个表格,并在其添加一个下拉选择的列,如下所示: ``` <table class="layui-table"> <thead> <tr> <th>姓名</th> <th>性别</th> <th>城市</th> <th>爱好</th> <th>操作</th> </tr> </thead> <tbody> <tr> <td>张三</td> <td>男</td> <td> <div class="layui-input-inline"> <select name="city" lay-filter="tree"> <option value="">请选择城市</option> <option value="1">北京</option> <option value="2">上海</option> <option value="3">广州</option> <option value="4">深圳</option> </select> </div> </td> <td>篮球</td> <td> <button class="layui-btn layui-btn-xs">编辑</button> <button class="layui-btn layui-btn-danger layui-btn-xs">删除</button> </td> </tr> </tbody> </table> ``` 2. 在 JavaScript 初始化 layui 的 tree 模块和 form 模块,并为下拉选择添加一个事件监听器,如下所示: ``` layui.use(['tree', 'form'], function(){ var tree = layui.tree, form = layui.form; // 初始化树形下拉选择 tree({ elem: '#tree', nodes: [ { name: '北京', id: 1, children: [ { name: '朝阳区', id: 11 }, { name: '海淀区', id: 12 }, { name: '东城区', id: 13 } ] }, { name: '上海', id: 2, children: [ { name: '浦东新区', id: 21 }, { name: '徐汇区', id: 22 }, { name: '黄浦区', id: 23 } ] }, { name: '广州', id: 3, children: [ { name: '天河区', id: 31 }, { name: '越秀区', id: 32 }, { name: '海珠区', id: 33 } ] }, { name: '深圳', id: 4, children: [ { name: '福田区', id: 41 }, { name: '南山区', id: 42 }, { name: '罗湖区', id: 43 } ] } ] }); // 监听下拉选择的 change 事件 form.on('select(tree)', function(data){ console.log(data.value); // 输出选的值 }); }); ``` 3. 在 CSS 定义一些样式,使树形下拉选择的样式更美观,如下所示: ``` .layui-tree .layui-tree-txt { padding-left: 20px; } .layui-tree .layui-tree-icon { left: 0; } .layui-form-select .layui-edge { right: 10px; } .layui-form-select dl { max-height: 200px; overflow-y: auto; } ``` 这样就可以实现一个树形下拉选择了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值