layui 弹窗 form 表单数据回显实现

作者:橙子时间:2026-10-23 10:50:23浏览:292

本文介绍在 layui 中点击编辑按钮时,如何将表格数据回显至弹出子页面的 form 表单内。通过 layer.open 的 success 回调获取 iframe 窗口对象,利用 div.find 或 body.find 定位元素并赋值。建议表单属性名与表格字段名保持一致以简化遍历赋值逻辑,避免繁琐的逐个 ID 取值操作。

layui 弹窗表单数据回显实现

目标:点击编辑按钮后,将数据回显到弹出的子页面表单中。效果如下图所示:

layui 弹窗表单数据回显实现

layui 弹窗表单数据回显实现

HTML 代码结构如下:


<body>
 <div class="layui-form" lay-filter="useradmin" id="useradmin">
  <div class="layui-form-item">
   <label class="layui-form-label">用 &nbsp;户&nbsp;名</label>
   <div class="layui-input-inline">
    <input type="text" name="username" lay-verify="required" id="username" placeholder="请输入用户名" autocomplete="off" class="layui-input">
   </div>
  </div>
 其它省略...
 </div>
</body>

JavaScript 代码实现如下:


layer.open({
    type: 2
    ,title: '编辑用户'
    ,content: 'xx.html'
    ,maxmin: true
    ,area: ['500px', '450px']
    ,btn: ['确定', '取消']
    ,yes: function(index, layero){
     
    省略...
    }
    ,success: function(layero, index){
   
      // 方式一 其实就是获取的 子页面的 div  
      var div = layero.find('iframe').contents().find('#useradmin'); // div.html() div里面的内容,不包含当前这个div
        
       // 方式二 
       var body = layer.getChildFrame('body', index); // body.html() body里面的内容 
   
       
       /* ---- 附加内容 看看就好 Begin ---- */
      var iframeWindow = window['layui-layer-iframe'+ index]  // 方式一: 得到iframe页的窗口对象
      var iframeWindow = window[layero.find('iframe')[0]['name']];  // 方式二: 得到iframe页的窗口对象
      /* ---- 附加内容 看看就好 End ---- */
 
      // 测试 :
      body.find("#username").val("admin"); // 方式一
   
      div.find("#username").val("admin"); // 方式二 
    }
 });

关于 layui 表单数据的获取,可参考官方示例:https://www.layui.com/demo/table/operate.html 。

建议表单元素的属性名与表格列的属性名保持一致。这样在遍历赋值时只需一次操作,避免表单数据过多时需要编写大量类似 div.find("#id").val("") 的代码。

以上即为 layui 弹窗 form 表单赋值的实现方法,希望对大家有所帮助。

作者最新文章