$('#FlowFormFrame')[0].contentWindow.saveFlowForm('1')
上面是我调用本页面中的一个iframe中的方法,但是总是接收不到方法的返回值,iframe中的方法如下
function saveFlowForm(state) {
$("#state").val(state);
$.ajax({
url: "<%=base.sysPath%>Interface/Supplies/AddReceive.aspx?t=" + (new Date()).valueOf(),
dataType: 'json',
type: 'POST',
async: false,
data: $('#form1').serialize(),
success: function (data) {
if (data) {
if (data.code == 0) {
return true;
}
else {
layer.msg(data.msg, { icon: 5 })
return false;
}
} else {
layer.msg("服务器出现异常,请稍后再试!", { icon: 5 })
return false;
}
}
});
}
调试发现只是接收不到ajax中的返回值,ajax改为同步也不行,需要将返回值赋值到一个变量中,在ajax结束后返回,就可以正常接收了,改动后如下
function saveFlowForm(state) {
var result;
$("#state").val(state);
$.ajax({
url: "<%=base.sysPath%>Interface/Supplies/AddReceive.aspx?t=" + (new Date()).valueOf(),
dataType: 'json',
type: 'POST',
async: false,
data: $('#form1').serialize(),
success: function (data) {
if (data) {
if (data.code == 0) {
result= true;
}
else {
layer.msg(data.msg, { icon: 5 })
result = false;
}
} else {
layer.msg("服务器出现异常,请稍后再试!", { icon: 5 })
result = false;
}
}
});
return result;
}