最近在改一个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})
}
});
网友评论