禁用提交按钮,直到Ajax完成

时间:2013-01-15 06:28:35

标签: ajax jquery form-submit javascript

我正在尝试禁用提交按钮,直到完成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 个答案:

答案 0 :(得分:1)

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

就像这样

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

您可以使用AJAX请求执行多项操作。有关详细信息,请参阅this post

编辑:如果你想阻止双重提交请求,有一种方法可以做到,但我不记得了:/我没有在谷歌上找到它。 This is a way要做到这一点,但我不喜欢它