2013-05-01 66 views
3

我有一個奇怪的情況正在進行Ajax回調。JQuery錯誤的Ajax完成回調觸發

調用工作正常(我可以在正確的地方看到服務器調用),並完成回調被正確觸發。

呼叫B呼叫工作正常(我可以看到在正確的地方的服務器調用),但然後A的完成回調被解僱!

下面的代碼: 答:

$(document).ready(function() { 
    $('#beta_signup_form').submit(function() { 
     var valuesToSubmit = $(this).serialize(); 
     $.ajax({ 
      url: $(this).attr('action'), //submits it to the given url of the form 
      data: valuesToSubmit, 
      dataType: "JSON", // you want a difference between normal and ajax-calls, and json is standard 
      type: 'POST' 
     }).done(function(json){ 
      console.log("in the beta signup form success function!!!!"); 
     }) 
     .fail(function() { 
      console.log("--------> beta signup modal callback error"); 
     }); 
     return false; // prevents normal behaviour 
    }); 
}); 

和代碼B:

$(document).ready(function() { 
    $('#twitter_sign_up').submit(function() { 
     var valuesToSubmit = $(this).serialize(); 
     $.ajax({ 
      url: $(this).attr('action'), //submits it to the given url of the form 
      data: valuesToSubmit, 
      dataType: "JSON", // you want a difference between normal and ajax-calls, and json is standard 
      type: 'POST' 
     }).done(function(json) { 
      console.log("in success for modal B..."); 
     }).fail(function() { 
      console.log("--------> modal B callback error"); 
     }); 
     return false; // prevents normal behaviour 
    }); 
}); 

這是怎麼回事???

+0

我從來沒有見過這樣的事情發生。 – 2013-05-01 15:22:47

+0

你可以在這裏粘貼HTML代碼嗎? – varunvlalan 2013-05-01 15:24:13

+0

你確定它發生在你向我們展示的代碼中嗎?因爲它看起來非常好。甚至更多 - 因爲它們在單獨的$(document).ready'處理程序中,所以它們不可能彼此看到。 – freakish 2013-05-01 15:24:23

回答

0

OH男人......我只是想通了。

所以我不得不:

<div id="twitter_sign_up"> 
    <form id="beta_signup_form" ...> 
    ... 
    </form> 
</div> 

我的錯拷貝HTML!

+0

非常好,哈哈。很高興你能弄明白。 – 2013-05-01 15:31:32

+0

乾杯凱文:D我非常高興有一個排序!花了一段時間... – 2013-05-01 15:33:47

+0

這是什麼排除,是我的問題,*「呼叫B電話工作正常(我可以看到服務器電話在正確的地方)」*我想他們都在調用相同的位置?或者你沒有真正檢查它發佈的位置 – 2013-05-01 15:35:21