解决ajax异步传输数据,return返回为undefined的问题

admin 发布于 2020-03-18T15:13:36 评论(0) 阅读(50)

分类:JavaScript

标签:

正确写法 

返回值应设置全局变量 var isExitResult = true;

 
/*
* 验证是否存在
* 返回值应设置全局变量 var isExitResult = true;
* 
*/
function isExitOaIntelligenceBox(){
    // var params = new Array();
    var boxIdVal = $('#boxId').val();
    var isExitResult = true;
    $.GAjax({
        url : GlobalParam.context + "/box/isExit?boxId=" + boxIdVal,
        type : "POST",
        async:false,
        success : function(data) {
            if(data){
                var options = {};
                options.modalId = "oaIntelligenceBoxAlert";
                options.content = "您录入的" + boxIdVal +"已存在!"
                options.title = "提示";
                options.width = 300;  //自定义宽度
                options.height = 200; //自定义高度
                require("pageComponent").GViewInfo(options);
                isExitResult = false;
            }else{
                isExitResult = true;
            }
        },
        error : function() {
            isExitResult = false;
        }
    });
    return isExitResult;
}

返回值应设置全局变量 var isExitResult = true;不能直接写作 return true或者return false,那样的话返回的是undefined。

比如这样的写法是错误的

错误写法一

 
/*
* 
* 验证是否存在
* 返回结果是undefined
*/
function isExitOaIntelligenceBox(){
    // var params = new Array();
    var boxIdVal = $('#boxId').val();
    $.GAjax({
        url : GlobalParam.context + "/box/isExit?boxId=" + boxIdVal,
        type : "POST",
        async:false,
        success : function(data) {
            if(data){
                var options = {};
                options.modalId = "oaIntelligenceBoxAlert";
                options.content = "您录入的" + boxIdVal +"已存在!"
                options.title = "提示";
                options.width = 300;  //自定义宽度
                options.height = 200; //自定义高度
                require("pageComponent").GViewInfo(options);
                return false;
            }else{
                return  true;
            }
        },
        error : function() {
            return  false;
        }
    });
}

错误写法二

 
/*
* 
* 验证是否存在
* 返回结果永远是true
*/
function isExitOaIntelligenceBox(){
    // var params = new Array();
    var boxIdVal = $('#boxId').val();
    $.GAjax({
        url : GlobalParam.context + "/box/isExit?boxId=" + boxIdVal,
        type : "POST",
        async:false,
        success : function(data) {
            if(data){
                var options = {};
                options.modalId = "oaIntelligenceBoxAlert";
                options.content = "您录入的" + boxIdVal +"已存在!"
                options.title = "提示";
                options.width = 300;  //自定义宽度
                options.height = 200; //自定义高度
                require("pageComponent").GViewInfo(options);
                return false;
            }else{
                return  true;
            }
        },
        error : function() {
            return  false;
        }
    });
    return true;
}