LayUI表格插入可输入的下拉框

最近在做公司的项目,有需求需要选择下拉,下拉完之后可以输入值。废话不多说,主要思路为使用HTML5的dataList标签。

主要以下步骤:
1 创建表格

<form class="layui-form" action="">
    <div class="layui-form-item" id="tablePart">
        <label class="layui-form-label">表格</label>
        <div class="layui-input-block">
            <table class="layui-hide" id="test" lay-filter="test"></table>
        </div>
        <div class="layui-form-item">
            <div class="layui-input-block">
                <button type="submit" class="layui-btn" lay-submit="" lay-filter="demo1">立即提交</button>
                <button type="reset" class="layui-btn layui-btn-primary">重置</button>
            </div>
        </div>
    </div>
<script src="../layui-v2.6.8/layui/layui.js"></script>

2.设置表格列属性,监听input框输入,结束之后将数据刷入 表格的table.cache属性中

layui.use(['table','jquery'], function () {
        var table = layui.table
            , form = layui.form
        ,$ = layui.$;
        //需要动态设置的datalist属性
        let forArr = ['field1', 'field2']
        table.render({
            elem: '#test',
            data: [{
                id: 1,
                username: '张三'
            },
                {
                    id: 2,
                    username: '李四'
                }],
            cellMinWidth: 80
            , cols: [[
                , {field: 'id', title: 'ID', width: 100, unresize: true, sort: true}
                , {
                    field: 'username', title: '用户名', templet: function (data) {
                        let inputStr = '<input type="text" name="userInput" lay-verify="userInput" list="nas" autocomplete="off" class="layui-input">';
                        let dataList = '<datalist id="nas">'
                        let options  = ''
                        forArr.forEach((a)=>{
                            options+='<option value=\"'+a+'\">'+a+'</option>'
                        })
                        console.log('options============',options)
                        return inputStr+dataList+options+'</datalist>'
                    }
                }
            ]]
            , page: true
        });
        //监听提交 此处思路主要为拿到表格div下 的所有input 然后用input框的值替换到表格行数据中的属性
        form.on('submit(demo1)', function(data){
            data.field.tablesdata = table.cache.test

            let inputs = $('#tablePart input')
            for (let i = 0; i < table.cache.test.length; i++) {
                let tableInput =  table.cache.test[i]
                let inputVal = inputs[i].value
                tableInput.username = inputVal
            }
            return false;
        });
    });
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rio_NP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值