Layui子页面向父页面传值(亲测有用)

Layui子页面向父页面传值(亲测有用)

场景描述

有一个列表,编辑某一列的信息时首先会弹出一个子页面,如图:在这里插入图片描述
在这个子页面上可以修改单个信息,修改区域的时候由于需要下拉框,因此又会弹出一个子页面,如图:在这里插入图片描述
当重新选择区域提交后会关闭第二个子页面,但是此时第一个弹出的子页面的区域并没有改变(数据库的值实际已经修改),原因是第一个子页面的值是从列表传过来的,因此需要第二个子页面修改区域后同步修改第一个子页面的值,实现代码如下。

代码实现

首先在第二个子页面定义一个方法

// 这是第二个子页面的方法
function sendToParent(data) {
        parent.getDataFromSon(data); //这是第一个子页面函数,代码在后面
        var index = parent.layer.getFrameIndex(window.name);
        parent.layer.close(index);
    }

当第二个子页面调用完修改方法并且成功后,调用sendToParent方法,把值传个第一个子页面

 //监听提交 这是第二个子页面的方法
form.on('submit(add)', function (reqData) {
CoreUtil.sendAjax('自己的请求路径', {'这里是传的参数'}, function (data) {
	// 这是需要传到第一个子页面的值
     subData.districtId = reqData.field.districtId
     subData.district = $("#district option:selected").text()
     subData.streetId = reqData.field.streetId
     subData.street = $("#street option:selected").text()
     if (data.code == 0) {
      	// 修改成功后把subData的值传给第一个子页面
      	sendToParent(subData)
      	var index = parent.layer.getFrameIndex(window.name);
      	parent.layer.close(index); //关闭当前弹框
      } else {
      	layer.msg(data.msg)
      }
    }, 'post', false)
       return false;
   });
});

最后在第一个子页面获取第二个子页面传过来的值,代码如下:

// 获取第二个子页面传来的值并修改
    function getDataFromSon(v) {
    // 这里的req_data是从列表传过来的值
       req_data.districtId = v.districtId
       req_data.district = v.district
       req_data.streetId = v.streetId
       req_data.street = v.street
       // 最后需要调用location.reload()才能更新内容
       location.reload()
    }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值