2013-01-15 101 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要做到這一點,但我不喜歡它