第1部分:应用场景
华仔在结合jquery mobile 开发手机网页端的时候,运用js中function进行数据传递时,发现返回的都是undefined,当时一头雾水,不知道如何是好。
第2部分:解决方案
经过好几轮尝试和资料查找,发现问题有迹可循,我使用的是ajxa进行post,直接在ajxa的success方法中进行返回,通过了解,这个方法返回并不代表整个function返回,这也就表示ajxa其实不适用于用return,因为即使用了,也不能跳出整个function,将所需数据真正返回给调用这个function的地方,后面我就修改思路,改成了利用ajxa中success方法对变量进行赋值,然后在外面进行return这个变量,具体代码如下:
function JudgeProduct(gx) {
var data = {
StripOrderNo: document.getElementById("加工单号").value,
Todo: "JudgeProduct",
gx: gx,
};
var status01;
$.ajax({
type: "POST",
ContentType: "application/json",
url: "http://XXXXXXXXXXXXXXXXXXXX.ashx",
data: data,
timeout: 8000,
async: false,
dataType: 'json',
success: function (data1, textStatus) {
jsonObj.Rows = eval('(' + data1 + ')');
if (jsonObj.Rows[0].status != "Ok") {
status01 = jsonObj.Rows[0].status;
return status01;
} else {
status01 = "Ok";
return status01;
}
},
error: function () {
alert('服务器连接有点问题,稍会再试。');
}
});
return status01;
}
JavaScript中返回值出现undefined的结论
在手机端开发的过程中,深感调试不便,不过慢慢的也就习惯了,操作起来也会更加娴熟,遇到问题多思多查。此外还有以下几个原因会导致返回值为undefined:
1、我们在function中return的变量赋值确实错了
2、我们在function中没有在所有的判断路径上都写上返回值
这两个问题同visual basic(vb.net)是一样的
© 版权声明
重要提示
虚拟资源具有可复制性: 建议具有一定思考和动手能力的用户获取,并且学习使用。本站资源均为网友收集整理而来,仅供学习和研究使用。
请谨慎考虑: 小白用户和缺乏思考动手能力者不建议赞助。
虚拟商品购买须知: 虚拟类商品,一经打赏赞助,不支持退款。请谅解,谢谢合作!
如有解压密码: 看下载页、看下载页、看下载页。
THE END







