2013-05-01 65 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