微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从调用函数等待jquery ajax回调

我已经回顾了很多这样的问题的答案,现在我对最好的方式感到困惑.鉴于最新的 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
        }
    });

原文地址:https://www.jb51.cc/jquery/179314.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐