全国统一服务热线:400-633-9193

详解layui弹窗父子窗口之间传参数的方法

        2018-01-18    1411

本文介绍了layui弹窗父子窗口之间传参数的方法,分享给大家,具体如下:

1、父页面打开子页面并向子页面传参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
function setChooseValues(ret){ 
    var oView = document.getElementById("userName"); 
    var oValue = document.getElementById("userIds"); 
    var i = 0; 
    if( ret != null){ 
      oValue.value=""; 
      oView.value=""; 
      oView.title=""; 
      for( x in ret){ 
        i++; 
        oView.title=oView.title + ret[x].name+","; 
        oValue.value=oValue.value+ret[x].id+","; 
        oView.value = oView.value+ret[x].name+"\n"; 
      } 
      if(i==0){ 
        oView.value=""; 
      } 
    } 
  } 
  function OpenFrame( oValue, oView) { 
    var dialogArgumentsA = new Array(oValue.value , spitToString(oView)); 
    var url = "${rootPath}/page/system/roleallot/role_allot.jsp"; 
    layer.open({ 
      type: 2, 
      skin: 'layui-layer-lan', 
      title: '选择人员', 
      fix: false, 
      shadeClose: false, 
      maxmin: true, 
      id:'selectUser', 
      move: false, 
      closeBtn:2, 
      //以下代码为打开窗口添加按钮 
      /* btn: ['确定', '取消'],
      btnAlign: 'c',
      yes: function(index, layero){
        /* //layer.closeAll();//关闭所有弹出层
        //var parentWin = layero.find('iframe')[0];
        var parentWin = layer.getChildFrame('body', index);
        alert(parentWin);
        parentWin.contentWindow.doOk();
        //layer.close(index);//这块是点击确定关闭这个弹出层
      }, */ 
      area: ['750px', '450px'], 
      content: url, 
      success: function(layero, index){ 
        var body = layer.getChildFrame('body', index); 
        var iframeWin = window[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method(); 
        var ids = dialogArgumentsA[0].split(","); 
        var names = dialogArgumentsA[1].split(","); 
        for (var i = 0; i < ids.length; i++ ) { 
          if ('' != ids[i]) { 
            var option = $("<option>").val(ids[i]).text(names[i]); 
            body.find('select').append(option); 
          } 
        } 
      } 
    }); 
  }

2、子页面向父页面传参数并关闭弹窗

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function newBuildReturnValue(selectName){
  var ret = new Array(); 
  
     $("#"+selectName+" option").each(function(){
  
     //遍历所有option  
       var value = $(this).val();  //获取option值   
       var text = $(this).text(); 
       if(text!=''){   
         var o = new Element(value, text, 0); 
        ret.push(o); 
       }  
    }); 
   return ret; 
  } 
  //点击确定向子页面传参并关闭窗口 
  function doOk(){ 
    var ret = newBuildReturnValue("select"); 
    parent.setChooseValues(ret); 
    var index = parent.layer.getFrameIndex(window.name); 
    parent.layer.close(index); 
  } 
     
  //点击取消关闭窗口 
     
  function doCancel(){ 
    var index = parent.layer.getFrameIndex(window.name); 
    parent.layer.close(index); 
  } 


  分享到:  
0.1999s