一、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