layer.open中父页面向子页面传值

Posted time1997

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了layer.open中父页面向子页面传值相关的知识,希望对你有一定的参考价值。

1.咱先看图说话技术图片

父list.jsp 子operate.jsp
实现的代码
1 在父页面上完成对子页面的数据渲染
function setData(data) {
var lay=layer.open({
type: 2,
title: false,
//closeBtn: 0,
//shade:0,//是否有遮罩效果
area: [‘560px‘, ‘294px‘],//宽,高
//skin: ‘layui-layer-nobg‘, //没有背景色
shadeClose: false,
content: [‘operate.do‘, ‘no‘],
success: function(layero, index){
var body=layer.getChildFrame(‘body‘,index);//少了这个是不能从父页面向子页面传值的
        //获取子页面的元素,进行数据渲染
       body.contents().find("#attributeNameEn").val(data.attributeNameEn);
       body.contents().find(‘#attributeNameCn‘).val(data.attributeNameCn);
       body.contents().find(‘#attributeId‘).val(data.attributeId);
       body.contents().find(‘#remark‘).val(data.remark);
       body.contents().find(‘#remarkEn‘).val(data.remarkEn);
       let id = ‘#isValid‘ + data.isValid;
       body.contents().find(id).prop("checked", true);//这是子页面的单选按钮,让其选中
        },
});
//重新给指定层设定width、top等 因为它们的小屏幕电脑的弹出层会出现滚动条,所以才用这个方法给加一个overflow: ‘visible‘,属性
layer.style(lay, {
overflow: ‘visible‘,
});

}

2.保存按钮的事件写在子页面的
function saveByajax() {
$.ajax2({
type: ‘POST‘,
url: ‘xxxx‘,
data:{
attributeId:$(‘#attributeId‘).val(),
attributeNameEn:$(‘#attributeNameEn‘).val(),
isValid:$(‘input[name="radioInline"]:checked‘).val(),
},
success: function (r) {
if (r && r.message==‘Operate successfully‘) {
// layer.msg("操作成功!");
setTimeout( function(){
//window.parent.location.href = ‘list.do‘; 或者
parent.location.reload();//刷新父页面
}, 5 * 100 );//延迟500毫秒
//window.parent.layer.closeAll();关闭弹窗
}else {
// layer.msg("添加失败!");
layer.msg("<spring:message code="msg_Add_failed"/> !");
}
}
})
}
 

 

以上是关于layer.open中父页面向子页面传值的主要内容,如果未能解决你的问题,请参考以下文章

Layui父页面向子页面传参

Taro 中父组件传多个值到子组件, 不同页面传值, 子组件修改父组件值

C# winform中父窗体显示问题

iframe实践小结:如何实现父页面向子页面传递数据

vue引入iframe的父页面向子页面传递数据

asp 网页 iframe 子页如何向父页回传参数