禁用超时按钮

use*_*429 1 html javascript jquery

我有此表单,其中包含在发布数据之前警告验证错误的条件。问题是如果有人双击(可能是由于错误),则提交了表单,然后在第一次单击时清除了表单,然后第二次单击将提示“表单为空”,这可能会造成混淆,因为这一切都是在一瞬间发生的。所以我想要的是在单击3秒钟后暂时禁用该按钮。但是我现在刚刚使整个功能超时3秒钟,而不仅仅是禁用按钮。我应该怎么做?这是表格的简化版。谢谢

$('#send').click(function(){

   var self = $('#send');
       setTimeout(function() {
       self.disabled = false;
   if(!$('#text').val()){
      alert('field empty');
  }else{
        $('#message').html('done');
        $('#text').val('');
    }
  }, 3000);
});  
Run Code Online (Sandbox Code Playgroud)

Pet*_*sen 5

我为您编写了一个小示例,即禁用单击按钮。超时将在3000毫秒后启用按钮。

工作演示

的HTML:

<input id="text">
<input id="send" type="button" value="send"/>
<div id="message"></div>
Run Code Online (Sandbox Code Playgroud)

Javascript:

$('#send').click(function(){
    var button = $(this);
    button.attr('disabled', 'disabled');
    setTimeout(function() {
         button.removeAttr('disabled');
    },3000);
    if(!$('#text').val()){
       alert('field empty');
       button.removeAttr('disabled');
    }else{
        $('#message').html('done');
        $('#text').val('');
    }
});
Run Code Online (Sandbox Code Playgroud)