2012-10-16 40 views
0

我有代碼:jQuery Ajax:如何等待在主腳本中完成ajax?

$this.ajaxForm({ 
    beforeSend: function (form) { 
     $('input[name *= "XXX"]').each(function (index) { 
      $.GetJSON({ 
       url: "XXX", 
       data: { 
        XXX: $(this).val() 
       } 
       success: function(json) { 
        if (json.error) 
        { 
        } 
       } 
      }); 
     } 
     anotheraction(); 
    } 
}); 

我想阻止腳本的下一部分的執行(環路內或之前「anotheraction」),直到前阿賈克斯結束(當然如果是json.error)。

編輯:我想打破一個循環(當我有json.error)和beforeSend

EDIT2返回false:從理論上講異步:假應該幫助,但沒有工作過。

有可能嗎?

回答

2

如果要延遲操作,直到成功調用服務器,只是將其包含在成功回調:

$.GetJSON({ 
    url: "XXX", 
    data: { 
     XXX: $(this).val() 
    } 
    success: function(json) { 
     anotheraction(); 
     ... 
    } 
}); 
+0

我想休息一個循環(當我有json.error)並返回false beforeSend – chudi

+0

只是在錯誤函數中使用返回false。 –

+0

if(json.error)返回false?不起作用。 – chudi

0

是的,它可能只是使用return關鍵字

+0

if(json.error)返回false?不起作用。 – chudi