2013-06-23 24 views
-1

我對我的BeginForm的onBegin功能發送Ajax請求返回false,我想停止下一步的時候data.success是假的。如何從jQuery的阿賈克斯的根本功能

但是返回false,從success方法不是從onBegin返回它。如何使這個異步的東西工作?如果data.success爲假,我想停止onBegin函數中的所有循環。

function onBegin() { 
     $("#spMessage").html("Processing..."); 
     $.ajax({ 
      url: '@Url.Action("test")', 
      type: "POST" 
      success: function (data) { 
       if (!data.success) { 
        alert("Sorry!"); 
        /*Here I want to return false not from success function, but from OnBegin function*/ 
        return false; 
       } 
      } 
     }); 
    } 

回答

2

你將失去​​異步請求的所有電源,但您可以指定通過添加選項async : false

function onBegin() { 
     $("#spMessage").html("Processing..."); 
     $.ajax({ 
      url: '@Url.Action("test")', 
      type: "POST", 
      async : false, 
      success: function (data) { 
       if (!data.success) { 
        alert("Sorry!"); 
        //onBegin function will return false 
        return false; 
       } 
       else 
       { 
        //onBegin function will return true 
        return true; 
       } 
      } 
     }); 
    } 
+1

不是它'async',它的一個錯字,你的AJAX請求必須是同步的! – krishgopinath

+0

@passionateCoder你是對的。 Thx – sdespont

+0

@sdespont因此,如果我在'var request = $ .ajax()...'中分配ajax調用,然後'console.log(request)'不應該看到'true'或'false'? – lbrahim