layui表格下拉选择、日期选择、文本输入框

2022-10-19实例代码
325

一、下拉选择
改动三个地方:下拉选择模板、数据渲染、下拉选择监听填充数据
//表格
{
    title: '是否棚改房<span class="titletips">*</span>',
    field: 'sfpgf',
    align: 'center',
    width: 110,
    // edit: 'text',
    templet: function (d) {
        return '<select name="sfpgf" class="sel_xlk" lay-filter="sfpgf" lay-verify="sfpgf" data-state="' + d.sfpgf + '" data-sfpgf="' + d.sfpgf + '" >' +
                        '        <option value="">请选择</option>' +
                        '         <option :value="是">是</option>' +
                        '         <option :value="否">否</option>' +
                        '    </select>';
    }
}
//数据渲染
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="sfpgf"]'), function (index, item) {
        var elem = $(item);
        elem.val(elem.data('sfpgf')).parents('div.layui-table-cell').css('overflow', 'visible');
    });
},
//监听选择切换填充数据
form.on('select(sfpgf)', function (data) {//修改类型
    console.log(data);
    let sfpgf = data.elem.value; //当前字段变化的值
    var elem = $(data.elem);
    var trElem = elem.parents('tr');
    var tableData = table.cache['zongdimingxi_hb_table'];
    // 更新到表格的缓存数据中,才能在获得选中行等等其他的方法中得到更新之后的值
    tableData[trElem.data('index')][elem.attr('name')] = data.value;
    //修改状态
    //....这里省略一个ajax请求...
    // 传值:表单变化后的值传递到后台数据库进行实时修改,例如,根据id修改这条数据的状态。
});
补充:
以上问题存在表格添加行后表格刷新选择器的input框没有赋上值,因此在done中还要添加一行,完整代码如下:
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="sfpgf"]'), function (index, item) {
        var elem = $(item);
        $(item.parentElement).find('input').val(parseData[index].sfpgf);//给layui下拉选择器的input赋值
        elem.val(elem.data('sfpgf')).parents('div.layui-table-cell').css('overflow', 'visible');
    });
},
二、日期选择
 改动二个地方:日期模板、数据渲染
//表格
{
    title: '申请时间<span class="titletips">*</span>',
    field: 'sqsj',
    align: 'center',
    width: 150,
    // event:'editsqsj',
    // data_field:'sqsj'
    templet: function (d) {
        return '<input name="sqsj" class="layui-input time-input" readonly="readonly" ' +
                                'value="' + d.sqsj + '">' +
                                '<i class="layui-icon layui-icon-date icontime sqsj-laydate"></i>'
    }
},
//数据渲染
done: function (res, curr, count) {
    $(".sqsj-laydate").each(function (i) {
        laydate.render({
            //时间选择器
            elem: this.parentNode.firstElementChild,
            eventElem: this,
            type: 'date',
            value: this.value,
            trigger: 'click',
            done: function (value, date, endDate) {
                console.log(i + ":" + value);
                parseData[i].sqsj = value;
            }
        })
    })
},
三、文本框输入
改动二个地方:文本模板、数据渲染、监听change事件
{
    title: '申请人<span class="titletips">*</span>',
    field: 'sqr',
    align: 'center',
    templet: function (d) {
        //input输入框
        // return '<input name="sqr" class="layui-input time-input sqr-lay"' + 'value="' + d.sqr + '">'
        return '<textarea name="sqr" class="textarea-lay sqr-lay"' + 'value="' + d.sqr + '"></textarea>'
    }
}
//在done中为textarea赋值
$(".sqr-lay").each(function (i) {
    $(this).val(parseData[i].sqr);
})
//输入值修改表格数据
$(".sqr-lay").change(function () {
    var value = this.value;
    console.log(value);
    var elem = $(this);
    var trElem = elem.parents('tr');
    var zongdi_extra = table.cache['sqr_table'];
    // 更新到表格的缓存数据中,才能在获得选中行等等其他的方法中得到更新之后的值
    zongdi_extra[trElem.data('index')][elem.attr('name')] = value;
});
 
The End
layui 下拉框 日期选择 文本输入框

相关推荐

layui后台布局实例代码
layui后台布局的实例代码,以下是详细代码: !DOCTYPE htmlhtmlhead meta charset="utf-8" meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" titlelayout 后台大布局 - Layui/title link rel="stylesheet" ...
2025-10-15 实例代码
68

LayUI登录页面页设计实例
实例代码如下: !DOCTYPE htmlhtml lang="en" head meta charset="utf-8" link rel="stylesheet" href="layui/css/layui.css" style type="text/css" .container{ width: 420px; height: 320px; min-height: 320px; max-height: 320px; position: absolute; t...
2025-04-13 实例代码
234

MUI Picker Input设置默认时间回显实例代码
MUI Picker Input设置默认时间回显实例代码 mui('body').on('tap', '#begTime', function () { //日期选择 var dtPicker = new mui.DtPicker({ type: 'date' }); /*参数:'datetime'-完整日期视图(年月日时分) 'date'--年视图(年月日) 'time' --时间视图(时分...
2025-01-09 实例代码
139

layui实现带清除按钮的输入框
layui实现带清除按钮的输入框,首先html文件如下: !DOCTYPE htmlhtmlhead meta charset="utf-8" meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" title测试 - layui/title link rel="stylesheet" href="layui/css/lay...
2024-12-31 实例代码
200

layui下拉多选框xm-select.js插件的使用
创建容器 xm-select-demo,选择容器 隐藏赋值取值表单; div id="selected_box" class="layui-input-inline xm-select-demo" style="width:150px;"input type="hidden" id="poi_category_id"/div 异步获取代码 //获取分类; $.ajax({ type: 'get', url: "./ap...
2024-12-23 实例代码
99

layui实现根据table数据判断按钮显示情况的方法
可以根据table的数据实现判断toolbar按钮的显示状态和情况 script type="text/html" id="barDemo" {{# if(d.status ==0){ }} a class="layui-btn layui-btn-mini" lay-event="examine"查看/a a class="layui-btn layui-btn-mini" lay-event="edit"编辑/a a cl...
2024-12-13 实例代码
121