layui父窗口獲取子頁面的form的值,子窗口關閉父窗口


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM