2013-01-15 51 views
1

我试图禁用提交按钮,直到ajax函数完成。禁用提交按钮,直到Ajax完成

现在,我只能弄清楚如何在用户输入时禁用指定时间的按钮。

如何禁用提交按钮,直到ajax数据加载?谢谢。

<script> 

    $('#comment_comment').keyup(function() { 
     $("#new_comment_button").attr("disabled", true); 
     setTimeout(function() { $("#new_comment_button").removeAttr("disabled"); }, 2000); 
    }); 

    $('#comment_comment').preview({ key:'my key', 
     selector : {type:'rich'}, 
     preview : { 
     submit : function(e, data){ 
      $.ajax({ 
      dataType: 'script', 
      url: this.form.attr('action'), 
      type: 'POST', 
      data: data 
      }); 
     }, 
     }, 
     autoplay : 0, 
     maxwidth : 350, 
     display : {display : 'rich'} 
    }); 

</script> 

回答

1

当使用简单JS启动AJAX时禁用该按钮,并在AJAX请求完成时启用它。

这将是这样的

$.ajax({... 
    success: function(){ 
    submitButton.enable(); // Pseudo-code 
    }, 
    ... 
}); 

你可以做几件事情与AJAX请求。见this post欲了解更多信息

编辑:如果你想防止双重提交请求,有办法做到这一点,但我不记得:/和我没有发现它在谷歌。 This is a way要做到这一点,但我不喜欢它