美文网首页
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