大家好,又见面了,我是你们的朋友全栈君。
Layui弹出层取值
1.首先在父页面定义要传过去的值
table.on('tool(demo)', function (obj) {
//obj为当前行对象
var data = obj.data;
json = JSON.stringify(data);
title = obj.event;
//如果监听到父页面点击的是修改按钮
if (obj.event === 'edit') {
layer.open({
type: 2,//子弹窗类型,建议去官网看一下,忘了
title: '编辑素材',
shadeClose: true,
shade: false,
maxmin: true, //开启最大化最小化按钮
area: ['893px', '600px'],//给一个初始大小
content: '/html/add-random.html'//你的子页面路径
, success: function () {
//成功之后触发事件
json = {
};
title = "";
}
})
}
2.子页面
//可以放在layui.use里面
//从父层获取值,json是父层的全局js变量。eval是将该string类型的json串变为标准的json串
if (title1 == "edit") {
var parent_json = eval('(' + parent.json + ')');//这样的json格式更规范,
//看其他博客说的
console.log(parent_json);
form.val('example', {
"id": parent_json.id
, "randomName": parent_json.randomName// "name": "value"
, "capital": parent_json.capital
, "lower": parent_json.lower
, "number": parent_json.number
, "zh": parent_json.zh
, "zh_symbol": parent_json.zh_symbol
, "en_symbol": parent_json.en_symbol
});
}
3.可能会出现的错误
子弹窗获取不到父页面的json
我在父页面的成功事件里重置了json,之前用着没事,但是我把子弹窗页面放在了static文件夹,父页面放在了template文件夹里,这时候子弹窗还没渲染json就被重置了,导致取不到数据。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136524.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...