ajaxStart和ajaxStop用于特定事件

时间:2012-06-13 07:52:28

标签: php jquery ajax

如何使用以下方法绑定特定事件的ajaxStart函数:

$(document).ajaxStart(function () {
  alert("started");
});
$(document).ajaxStop(function () {
  alert("Ended");
});

尝试使用此代码,但只要自动完成开始就会运行。

场景必须如下:每当我提交表单时,都会调用该函数。 但是,当我只是通过ajax使用自动填充功能获取值时,不应调用ajaxStartajaxStop

3 个答案:

答案 0 :(得分:2)

  

但是当我只是通过ajax使用autocomplete获取值时,   不应该调用ajaxStart和ajaxStop。

您可以创建一个布尔变量来跟踪用户是否正在键入:

<script>
var isTyping = false;

// inside your autocomplete handler set isTyping to true

$(document).ajaxStart(function(){
    if (! isTyping) alert("started");
});
$(document).ajaxStop(function(){
    if (! isTyping) alert("Ended");
});

</script>

答案 1 :(得分:1)

最好使用main函数及其子函数。

$.ajax({
 url: 'url_to_page'
 beforeSend: function(req){ //Before the request is taking off},
 error: function(req){ //If there were a error},
 success: function(req){ //When it all was done}
});

答案 2 :(得分:0)

 $.ajax({
      url :'your url',
      data: {
           //data to send if any
      },
      type: 'POST',
      success:function(msg){
           //eqv to ajaxstop if OK
      },
      beforeSend:function(){
           //before ajax starts
      },
      error:function(){
           //failure in ajax
      }
 });