从调用函数等待jquery ajax回调

前端之家收集整理的这篇文章主要介绍了从调用函数等待jquery ajax回调前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_403_1@我已经回顾了很多这样的问题的答案,现在我对最好的方式感到困惑.鉴于最新的 jquery,我想要

>调用ajax函数
>做ajax处理(成功或错误)//工作正常
>成功或错误将状态返回给调用函数进行进一步处理

调用函数(doAjax)中,如何等待回调,然后完成处理成功或错误(在这种情况下,其成功清除表单,错误保持原样)

Thx为任何建议,

艺术
[编辑]
有一个打字错误,你们发现,打电话应该是doAnAjax不是doAjax

$(function () {
    doAnAjax(Url,data,function (myRtn) {
        if (myRtn == "success") {
            resetForm($('#myForm'));
            resetForm($('form[name=addChlGrp]'));
        } else {
            $('.rtnMsg').html("Opps! Ajax Error");
        }
    });
});

function doAnAjax(newUrl,data) {
    $.ajax({
        url: newUrl,async: true,dataType: 'html',beforeSend: function () {
            $('.rtnMsg').html("<img src=_cssStyleImg_-A-loading.gif>");
        },type: "GET",data: data,cache: false,success: function (data,textStatus,xhr) {
            $('.rtnMsg').html(data);
            myRtnA = "Success"
            return myRtnA;
        },error: function (xhr,errorThrown) {
            $('.rtnMsg').html("opps: " + textStatus + " : " + errorThrown);
            myRtnA = "Error"
            return myRtnA;
        }
    });
}

解决方法

你必须使用回调函数.请尝试以下:
$(function() {

   // I think doAjax should doAnAjax()
   // here you're passing callback
   // but you're not using it doAnAjax()

    doAnAjax(Url,function(myRtn) {
        if (myRtnV == "success") {
            resetForm($('#myForm'));
            resetForm($('form[name=addChlGrp]'));
        } else {
            $('.rtnMsg').html("Opps! Ajax Error");
        }
    });
});

// pass callback as third parameter to doAnAjax()

function doAnAjax(newUrl,callBack) {
    $.ajax({
        url: newUrl,beforeSend: function() {
            $('.rtnMsg').html("<img src=_cssStyleImg_-A-loading.gif>");
        },success: function(data,xhr) {
            $('.rtnMsg').html(data);
            myRtnA = "Success"
            return callBack( myRtnA );  // return callBack() with myRtna
        },error: function(xhr,errorThrown) {
            $('.rtnMsg').html("opps: " + textStatus + " : " + errorThrown);
            myRtnA = "Error"
            return callBack ( myRtnA ); // return callBack() with myRtna
        }
    });

猜你在找的jQuery相关文章