填充layui弹窗中的表单

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>测试记录</title>
    <link rel="stylesheet" href="layuiNew/css/layui.css">
</head>
<style>
    #layui-layer1 > div.layui-layer-content > form > div > label{
        width: 110px !important;
    }
    #layui-layer1 > div.layui-layer-content > form > div > div{
        margin-left: 143px !important;
    }
</style>

<body>
<table class="layui-hide" id="testRecordTable" lay-filter="testRecordTable"></table>
<script type="text/html" id="barDemo">
    <a class="layui-btn layui-btn-xs" lay-event="detail">查看</a>
    <a class="layui-btn layui-btn-xs" lay-event="del">删除</a>
</script>

<script src="js/jquery-3.3.1.min.js"></script>
<script src="layuiNew/layui.js"></script>


</body>
<script>
    layui.use(function () {
        var form = layui.form;
        var table = layui.table;
        var util = layui.util;

        var tableData = [
            {
                "id": 1,
                "csrq": "2023-10-23",
                "csr": "张三",
                "cshj": "开发环境",
                "csmk": "用户管理",
                "csgn": "添加用户、删除用户功能",
                "wtms": "用户添加时,页面报错",
                "kfcljg": "已修复",
                "kfclsm": "修复了用户添加时的页面报错问题",
                "csqrjg": "通过",
                "csqrsm": "测试通过,功能正常",

            },
            {
                "id": 2,
                "csrq": "2023-10-22",
                "csr": "李四",
                "cshj": "测试环境",
                "csmk": "订单管理",
                "csgn": "查看订单、修改订单状态功能",
                "wtms": "修改订单状态时,数据未保存",
                "kfcljg": "待处理",
                "kfclsm": "需要进一步调查问题原因",
                "csqrjg": "",
                "csqrsm": "",

            },
            {
                "id": 3,
                "csrq": "2023-10-21",
                "csr": "王五",
                "cshj": "生产环境",
                "csmk": "支付功能",
                "csgn": "支付宝、微信支付功能",
                "wtms": "支付宝支付时,页面卡顿",
                "kfcljg": "已优化",
                "kfclsm": "优化了支付页面的性能",
                "csqrjg": "通过",
                "csqrsm": "测试通过,支付流畅",

            }
        ]

        // 根据返回数据中某个字段来判断开启该行的编辑
        var editable = function (d) {
            if (d.editable) return 'text'; // 这里假设以 editable 字段为判断依据
        };
        // 创建表格实例
        table.render({
            elem: '#testRecordTable',
            page: true,
            css: [
                    '.layui-table-view td[data-edit]{color: #16B777;}', //高亮可以编辑的单元格
                '.layui-table-page{text-align: center;}' // 让分页栏居中
            ].join(''),
            cols: [[
                {field: 'id', hide: true, title: 'id', align: 'center'},
                {field: 'csrq', title: '测试日期', align: 'center'},
                {field: 'csr', title: '测试人', align: 'center'},
                {field: 'cshj', title: '测试环境', align: 'center'},
                {field: 'csmk', title: '功能模块', align: 'center'},
                {field: 'csgn', title: '功能描述', align: 'center'},
                {field: 'wtms', title: '问题描述', align: 'center'},
                {field: 'kfcljg', title: '开发处理结果', align: 'center', edit: true},
                {field: 'kfclsm', title: '开发处理说明', align: 'center', edit: true},
                {field: 'csqrjg', title: '测试确认结果', align: 'center', edit: true},
                {field: 'csqrsm', title: '测试确认说明', align: 'center', edit: true},
                {title: '操作', align: 'center', toolbar: '#barDemo'},
            ]],
            data: tableData,
            skin: "nob",
            page: true,
            limits: [5, 10, 15],
            limit: 15
        });
        // 单元格编辑后的事件
        table.on('edit(testRecordTable)', function (obj) {
            var field = obj.field; // 得到修改的字段
            var value = obj.value // 得到修改后的值
            var oldValue = obj.oldValue // 得到修改前的值 -- v2.8.0 新增
            var data = obj.data // 得到所在行所有键值
            var col = obj.getCol(); // 得到当前列的表头配置属性 -- v2.8.0 新增

            // 值的校验
            if (value.replace(/\s/g, '') === '') {
                layer.tips('值不能为空', this, {tips: 1});
                return obj.reedit(); // 重新编辑 -- v2.8.0 新增
            }
            // 编辑后续操作,如提交更新请求,以完成真实的数据更新
            // …
            // 显示 - 仅用于演示
            layer.msg('[ID: ' + data.id + '] ' + field + ' 字段更改值为:' + util.escape(value));
        });


        table.on('tool(testRecordTable)', function (obj) {
            var data = obj.data;
            if (obj.event === 'del') {
                layer.confirm('真的删除吗?', function (index) {
                    layer.msg(JSON.stringify(data))
                    layer.close(index);
                });
            }
            if (obj.event === 'detail') {
                layer.open({
                    type: 1, // page 层类型
                    area: ['700px', '850px'],
                    title: '测试记录',
                    shade: 0.6, // 遮罩透明度
                    shadeClose: true, // 点击遮罩区域,关闭弹层
                    maxmin: true, // 允许全屏最小化
                    anim: 0, // 0-6 的动画形式,-1 不开启
                    content: `<form class="layui-form" action="" lay-filter="detailForm"  style="margin-top: 20px;">
                                  <div class="layui-form-item">
                                    <label class="layui-form-label">测试日期:</label>
                                    <div class="layui-input-block">
                                      <input type="text" name="csrq" lay-verify="required" placeholder="请输入" autocomplete="off" class="layui-input">
                                    </div>
                                  </div>
                                   <div class="layui-form-item">
                                    <label class="layui-form-label">测试人:</label>
                                    <div class="layui-input-block">
                                      <input type="text" name="csr" lay-verify="required" placeholder="请输入" autocomplete="off" class="layui-input">
                                    </div>
                                  </div>
                                   <div class="layui-form-item">
                                    <label class="layui-form-label">测试环境:</label>
                                    <div class="layui-input-block">
                                      <input type="text" name="cshj" lay-verify="required" placeholder="请输入" autocomplete="off" class="layui-input">
                                    </div>
                                  </div>
                                   <div class="layui-form-item">
                                    <label class="layui-form-label">功能模块:</label>
                                    <div class="layui-input-block">
                                      <input type="text" name="csmk" lay-verify="required" placeholder="请输入" autocomplete="off" class="layui-input">
                                    </div>
                                  </div>
                                  <div class="layui-form-item layui-form-text">
                                    <label class="layui-form-label">功能描述:</label>
                                    <div class="layui-input-block">
                                      <textarea name="csgn" placeholder="请输入内容" class="layui-textarea"></textarea>
                                    </div>
                                  </div>
                                  <div class="layui-form-item layui-form-text">
                                    <label class="layui-form-label">问题描述:</label>
                                    <div class="layui-input-block">
                                      <textarea name="wtms" placeholder="请输入内容" class="layui-textarea"></textarea>
                                    </div>
                                  </div>
                                  <div class="layui-form-item layui-form-text">
                                    <label class="layui-form-label">开发处理结果:</label>
                                    <div class="layui-input-block">
                                      <input type="text" name="kfcljg" lay-verify="required" placeholder="请输入" autocomplete="off" class="layui-input">
                                    </div>
                                  </div>
                                   <div class="layui-form-item">
                                    <label class="layui-form-label">开发处理说明:</label>
                                    <div class="layui-input-block">
                                        <textarea name="kfclsm" placeholder="请输入内容" class="layui-textarea"></textarea>
                                    </div>
                                  </div>
                                  <div class="layui-form-item layui-form-text">
                                    <label class="layui-form-label">测试确认结果:</label>
                                    <div class="layui-input-block">
                                      <input type="text" name="csqrjg" lay-verify="required" placeholder="请输入" autocomplete="off" class="layui-input">
                                    </div>
                                  </div>
                                   <div class="layui-form-item">
                                    <label class="layui-form-label">测试确认说明:</label>
                                    <div class="layui-input-block">
                                      <textarea name="csqrsm" placeholder="请输入内容" class="layui-textarea"></textarea>
                                    </div>
                                  </div>
                                </form>
                            `
                    ,success: function(layero, index){
                        form.val('detailForm', data);
                    }
                });

            }

        });

    });


</script>

</html>

主要是在layer渲染成功之后的success回调函数中调用form.val()方法

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
layui,编辑弹窗回显可以通过使用form.val()方法来实现。具体步骤如下: 1. 在打开编辑弹窗之前,先获取需要编辑的数据,并将数据赋值给表单元素。 2. 在弹窗表单元素的name属性需要与获取到的数据的字段名相同。 3. 在弹窗,使用form.val()方法将获取到的数据回显到表单。 下面是一个示例代码: HTML代码: ``` <form class="layui-form" action=""> <div class="layui-form-item"> <label class="layui-form-label">用户名</label> <div class="layui-input-block"> <input type="text" name="username" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">性别</label> <div class="layui-input-block"> <input type="radio" name="sex" value="男" title="男"> <input type="radio" name="sex" value="女" title="女"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">城市</label> <div class="layui-input-block"> <select name="city" lay-verify="required"> <option value=""></option> <option value="北京">北京</option> <option value="上海">上海</option> <option value="广州">广州</option> <option value="深圳">深圳</option> </select> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button> </div> </div> </form> ``` JS代码: ``` // 获取需要编辑的数据 var data = { username: '张三', sex: '男', city: '北京' }; // 打开编辑弹窗之前,将数据赋值给表单元素 $('input[name="username"]').val(data.username); $('input[name="sex"][value="'+data.sex+'"]').attr('checked', true); $('select[name="city"]').val(data.city); // 在弹窗,使用form.val()方法将获取到的数据回显到表单 form.val('example', data); ``` 在上面的代码,form.val()方法的第一个参数是表单的lay-filter属性值,第二个参数是需要回显的数据对象。在这个例子表单的lay-filter属性值为example。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值