最近使用layer开发发现贼多坑。
//父页面
layer.open({
type: 2,
title: "编辑文章",
closeBtn: 1,// 关闭按钮:layer提供了两种风格的关闭按钮,可通过配置1和2来展示,如果不显示,则0
shift: 2,
fixed: false,// 固定:默认:true
maxmin: true,// 最小最大化显示
resize: true,//弹窗尺寸可控
moveOut: true,//能否移动到层级里面
area: ['90%', '90%'],
shadeClose: false, // 是否点击遮罩关闭
content: "MediumEditTo.html",
success: function (layero, index) {
var body = layer.getChildFrame('body', index);//获取子页面
body.contents().find("#uid").val(data.UID);//用id赋值
body.contents().find("input[name='Poster']").val(data.Poster);//其它赋值
body.contents().find("#SelSP option[value='" + data.Type+"']").attr("selected", "selected");//id为SelSP的静态下拉框选中相应的值
var iframe = layero.find('iframe')[0].contentWindow; //得到iframe页的窗口对象
iframe.layui.form.render(); //页面渲染
//赋值动态下拉框调用子页面的方法,页面open完子页面数据还没加载完,传个回调函数
iframe.flGet(() => {
body.contents().find("#SelWZ option[value='" + data.FLUid + "']").attr("selected", "selected");//选中下拉框
iframe.layui.form.render(); //页面渲染
});
},
yes: function () {
}
});
// 子页面
//下拉框加载方法
function flGet(callback) {
$.ajax({
method: "GET",
url: baseUrl + "/api/AdmGetPsyFL",
success: function (result) {
if (!result.IsError) {
$.each(result.Data, function (index, value) {
$('#SelWZ').append(new Option(value.FLName, value.Uid));// 下拉菜单里添加元素
});
layui.form.render();
if (typeof callback === "function") {
callback();
}
}
else {
layer.msg(result.Message);
}
},
error: function (error) {
layer.msg("服务器错误!");
}
});
}