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

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

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

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、子页面向父页面传参数并关闭弹窗

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);
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
(0)

相关推荐

  • Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数

    背景 笔者之前一直使用 bootstrap table ,因为当前项目中主要使用 Layui 框架,于是也就随了 Layui table ,只是在使用的时候出现了一些问题,当然也是怪自己不熟悉的锅吧! 出现的问题: 1.使用 Layui 官方提供的 [转换静态表格] 方式初始化加载时报 id 找不到的错误(自己的锅) 2.传递参数问题(姑且算是 Layui 官方的锅) 笔者使用的 table 加载刷新方案 有一个页面,左侧是一个 tree,右侧是一个 table,默认 table 加载全数据,当

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

    本文介绍了layui弹窗父子窗口之间传参数的方法,分享给大家,具体如下: 1.父页面打开子页面并向子页面传参数 function setChooseValues(ret){ var oView = document.getElementById("userName"); var oValue = document.getElementById("userIds"); var i = 0; if( ret != null){ oValue.value="&q

  • 详解如何解决SSM框架前台传参数到后台乱码的问题

    最近在做一个SSM框架的项目,总是遇到一个问题,就是后台接收前端传递的中文参数的时候,参数是乱码的,导致sql语句经常无法执行,但是有很奇怪,在测试环境和生产环境都是正常的,就是本地开发环境总是这么坑人,那如何解决呢? 1.比较累人,就是能不传中文就不传中文参数,对于这点,大家就笑笑而过就行了.... 2.还是挺累人,真的得传中文,那就将中文强制转码了,如下: "中文".getBytes("UTF-8"); 3.第二点我还没尝试就找到这第三点了,至于第二点,有兴趣的

  • 详解C++编程中用数组名作函数参数的方法

    C++数组的概念 概括地说:数组是有序数据的集合.要寻找一个数组中的某一个元素必须给出两个要素,即数组名和下标.数组名和下标惟一地标识一个数组中的一个元素. 数组是有类型属性的.同一数组中的每一个元素都必须属于同一数据类型.一个数组在内存中占一片连续的存储单元.如果有一个整型数组a,假设数组的起始地址为2000,则该数组在内存中的存储情况如图所示. 引入数组就不需要在程序中定义大量的变量,大大减少程序中变量的数量,使程序精炼,而且数组含义清楚,使用方便,明确地反映了数据间的联系.许多好的算法都与

  • iframe的父子窗口之间的对象相互调用基本用法

    使用iframe的时候,可能会涉及到父子窗口之间传值和方法的相互调用,之前一直有些迷糊,也没有着意去弄清楚,这两天要干活,没法子了只好把这都弄明白了.其实非常简单,就那么几个用法,几句代码而已. 子窗口中调用父窗口的js方法: 复制代码 代码如下: parent.changeBtnTitle('tzgg'); 一个父窗口中可能会有若干个功能行为类似的子窗口,子窗口中的组件要调用相同或者类似的对象或者方法,那么就把这样的方法写在父窗口中,通过传递参数来达到不同的效果. 父窗口获得子窗口中的某个对象

  • 示例详解Python3 or Python2 两者之间的差异

    每门编程语言在发布更新之后,主要版本之间都会发生很大的变化. 在本文中,Vinodh Kumar 通过示例解释了 Python 2 和 Python 3 之间的一些重大差异,以帮助说明语言的变化. 本教程主要介绍内容: 表达式 Print 选项 Unequal 操作 Range 自动迁移 性能问题 主要的内部事务更改 1.表达式 在 Python 2 中为获得计算表达式,你会键入: 但在 Python 3 中,你会键入: 因此,无论我们输入什么,值都会分配给 2 和 3 中的变量 x.当在 Py

  • 详解python关于多级包之间的引用问题

    首先得明确包和模块. 包:在一个目录下存在__init__.py,那么该目录就是一个包. 模块:一个.py文件就是一个模块. 我们可以通过from 包 import 模块来引入python文件,也可以使用from 包.模块 import 模块中的函数或类. 具体看一下例子. 假设我们现在有以下的目录: 我们想在main.py中使用package_a和package_b里面额模块,可以这么使用: from package_a import tmp2 from package_b import tm

  • 详解JavaWeb如何实现文件上传和下载功能

    目录 1. 文件传输原理及介绍 2. JavaWeb文件上传 2.1我们用一个新的方式创建项目 2.2 导包 2.3 实用类介绍 2.4 pom.xml导入需要的依赖 2.5 index.jsp 2.6 info.jsp 2.7 FileServlet 2.8 配置Servlet 2.9 测试结果 3. SpringMVC文件上传和下载 3.1 上传 3.2 下载 1. 文件传输原理及介绍 2. JavaWeb文件上传 2.1我们用一个新的方式创建项目 空项目会直接弹出框 把jdk版本设置好 点

  • 详解uniapp页面跳转URL传参大坑

    案例 展示电影详情,传递电影的id.从search.vue传递到movie.vue methods: { showMovie(e){ var trailerid = e.currentTarget.dataset.trailerid; // console.log(trailerid); uni.navigateTo({ url: '../movie/movie?trailerId='+trailerid, success: res => {}, fail: () => {}, complet

  • 详解用Python进行时间序列预测的7种方法

    数据准备 数据集(JetRail高铁的乘客数量)下载. 假设要解决一个时序问题:根据过往两年的数据(2012 年 8 月至 2014 年 8月),需要用这些数据预测接下来 7 个月的乘客数量. import pandas as pd import numpy as np import matplotlib.pyplot as plt df = pd.read_csv('train.csv') df.head() df.shape 依照上面的代码,我们获得了 2012-2014 年两年每个小时的乘

  • 详解Python中pyautogui库的最全使用方法

    在使用Python做脚本的话,有两个库可以使用,一个为PyUserInput库,另一个为pyautogui库.就本人而言,我更喜欢使用pyautogui库,该库功能多,使用便利.下面给大家介绍一下pyautogui库的使用方法.在cmd命令框中输入pip3 install pyautogui即可安装该库! 常用操作 我们在pyautogui库中常常使用的方法,如下: import pyautogui pyautogui.PAUSE = 1 # 调用在执行动作后暂停的秒数,只能在执行一些pyaut

随机推荐