ylyanglei
2010-06-03 13:54 阅读 449

关于ajax的异步请求时的顺序问题!!!

    $('#fmCart').submit(function() {
    //判断支付方式 是否是:储值卡支付
         var checked= $("#pCard").attr("checked");
         if(!checked){
             return true;
         }

       var deliverId = $("input[name='deliver.id']:checked").val();
       var isTrue = false;
       $.post("${createLink(action: "cpCardMoney")}",
                        {deliverId:deliverId},
                        function(json){
                            if(json.success){
                              isTrue=true;
                            }else {
                              alert(json.message);
                            }

                        },
                    'json');

    return isTrue;

});
isTrue的值一直赋不上..知道原因可能是:由于在ajax请求的同时程序已经运行至return isTrue然而ajax还没有执行完...那怎么才能让他们按顺序执行呢..

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • 已采纳
    myali88 myali88 2010-06-07 11:15

    [quote]
    那要是用同步了..那我异步还有什么意义啊..
    [/quote]
    看你场景了,并不是说一定要用异步才好。另外,要异步也可以啊,你把得到“isTrue”后续的业务都封装到这个异步操作的回调函数中就可以了。

    点赞 评论 复制链接分享
  • myali88 myali88 2010-06-03 14:15

    不用异步请求,用同步试试。

    点赞 评论 复制链接分享
  • iteye_11438 iteye_11438 2010-06-03 14:46

    用$.ajax这个,里面可以设置async:false,这样就是同步调用,就能获得返回值了

    点赞 评论 复制链接分享
  • jncharles jncharles 2010-06-03 15:05

    楼上的说法我认为是可行,同步调用应该就没问题了

    点赞 评论 复制链接分享
  • weii822 weii822 2010-06-05 00:13

    ajax同步调用就可以了

    点赞 评论 复制链接分享

相关推荐