问题描述
Layui 从列表弹出层form表单回显问题,网上找的都是一个一个的赋值,如果界面的数据项多的话回显起来会及其的麻烦,还是要使用layui自带的form.val(filter,data) 方法 filter放 form里的lay-filter的值
<div class="layui-form layuimini-form" lay-filter="usertable">
通过success回调里获得弹出层的form对象,进行列表中选择的那条数据
table.on('tool(currentTableFilter)', function (obj) {
var data = obj.data;
if (obj.event === 'edit') {
var index = layer.open({
title: '编辑用户',
type: 2,
content: './UserTableEdit.html?event=edit&id='+data.id,
success:function (layero, index) {
//var body = layer.getChildFrame('body', index);
var iframeWin = window[layero.find('iframe')[0]['name']];
//表单数据回显,重点下面这句,可以将弹出的form对象获得
iframeWin.layui.form.getFormVal(JSON.stringify(data));
}
});
return false;
}
});
之后再在弹出层form的页面里声明一个方法,里卖弄可以写的你具体业务,同时借助layui的自身方法form.val进行赋值回显表单
var form = layui.form,
layer = layui.layer,
$ = layui.$;
//加载数据
form.getFormVal = function(rowdata){
//可以写其他业务请求。
var data1 = JSON.parse(rowdata);
console.log(data1);
form.val("usertable", data1);
}
个人总结:
虽然layui的官网已经下架了,但是由于个人原因还需要使用layui,因此将此次的问题总结作为记录