一、layui父窗口获取子页面的form的值
var GetParams = function(url,bool) {
try {
if(bool){
var index = url.indexOf('?');
url = url.match(/\?([^#]+)/)[1];
}
var obj = {}, arr = url.split('&');
for (var i = 0; i < arr.length; i++) {
var subArr = arr[i].split('=');
obj[subArr[0]] = subArr[1];
}
return obj;
} catch (err) {
return null;
}
}; layer.open({
type: 2,
title: "开发票",
area: ['700px', '500px'],
fixed: false, //不固定
btn: ['确定','取消'], //按钮
content: './openinvoice.html',//iframe
yes: function(index, layero){
var body = layero.find("iframe").contents().find("body");
var vals = $$(body).find('form').serialize();
var dataObj = GetParams(vals);//Url参数转JSON
if(!dataObj.invoice_id){
layer.msg("请选择需要发票信息");
}
console.log(dataObj);
}
});
二、layui获取子集表单中的值,关闭父级弹窗
var GetParams = function(url,bool) {
try {
if(bool){
var index = url.indexOf('?');
url = url.match(/\?([^#]+)/)[1];
}
var obj = {}, arr = url.split('&');
for (var i = 0; i < arr.length; i++) {
var subArr = arr[i].split('=');
obj[subArr[0]] = subArr[1];
}
return obj;
} catch (err) {
return null;
}
};
layer.open({
type: 2 //此处以iframe举例
,title: '邀请面试'
,area: ['550px', '550px']
,shade: 0
,maxmin: true
,content: './alt_page.html?id='+id
,btn: ['发送', '取消']
,yes: function(index,layero){
var body = layer.getChildFrame('body',index);
var vals = $(body).children(form).serialize();
var dataObj = GetParams(vals);//Url参数转JSON
console.log(vals);
console.log(dataObj);
}
,btn2: function(){
layer.closeAll();
layer.msg('取消')
}
,zIndex: layer.zIndex //重点1
,success: function(layero){
layer.setTop(layero); //重点2
}
});
二、关闭父级弹窗
//方法1
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭 //方法2
parent.layer.closeAll(); //也可以这样
注意:需要创建服务之后才能正常使用哦,也就是说访问的地址前边必须是http或者https