美文网首页
layer中的callbackdata问题,含Cannot re

layer中的callbackdata问题,含Cannot re

作者: 空我我 | 来源:发表于2022-04-26 09:36 被阅读0次

最近在改一个5年前前辈的项目,框架是完全没有用过的,全靠百度写了一个页面。
其中在layer弹出层出了问题,子页面返回数据的时候一直报错, Cannot read property 'callbackdata' of undefined取不到值。经过和之前的弹窗对比分析,子页面要写callbackdata,里面写上要选中行的数据(弹框是表格)

function callbackdata() {
        var res;
        var selects = $('#oTable').bootstrapTable('getSelections');
        if (!$(selects)[0]) {
            $.confirm({
                title : '提示',
                type : 'orange',
                content : '请选择一条信息!',
                icon : 'glyphicon glyphicon-alert',
                buttons : {
                    '确定' : {
                        btnClass : 'btn-info',
                        action : function() {
                            return;
                        }
                    }
                }
            });
        } else {

            var cId = $(selects)[0].id;
            var matnr = $(selects)[0].matnr;
            var model = $(selects)[0].model;
            var maktx = $(selects)[0].maktx;
            var salesPrice = $(selects)[0].salesPrice;
            res = {
                cId : cId,
                matnr : matnr,
                model : model,
                maktx : maktx,
                salesPrice : salesPrice,
            }
        }
        return res;
    }

cv以前的弹窗发现取值用的是

var resList = window["layui-layer-iframe" + 0].callbackdata();

依然报错 Cannot read property 'callbackdata' of undefined
最后找到一篇文章用的

var res = $(layero).find("iframe")[0].contentWindow.callbackdata();

就ok了
感谢这篇文章 地址->
最后主页面的弹框这样写的

layer.open({
                        type : 2,
                        title : '物料信息查询',
                        fix : false,
                        maxmin : true,
                        shadeClose : true,
                        area : [ '1050', '420' ],
                        btn : [ '确认', '取消' ],
                        offset : [ 30, 0 ],
                        content : '${ctx}/common/popWin/contractInfoPop',
                        yes : function(index,layero) {
                            var res = $(layero).find("iframe")[0].contentWindow.callbackdata();
                            // var resList = window["layui-layer-iframe" + 0].callbackdata();
                            console.log('res', res)
                            layer.closeAll();

                            let row = $("#noTable").bootstrapTable('getOptions').data[selectIndex];
                            console.log('弹框行数据', row)
                            row.zzprdmodel = res.matnr
                            $("#noTable").bootstrapTable('updateRow',{index: selectIndex, row: row})
                        }
                    });

相关文章

网友评论

      本文标题:layer中的callbackdata问题,含Cannot re

      本文链接:https://www.haomeiwen.com/subject/scjcyrtx.html