javascript - 运行函数时禁用按钮

标签 javascript

我在 Javascript 中有一个函数,通过单击按钮来调用该函数,大约需要一分钟才能完成。如何一键禁用该按钮,并在功能完成后再次启用? 我需要这个过程来防止垃圾邮件。

我尝试了以下代码,但它不起作用。仍然可以多次单击该按钮。

Javascript:

function myFunc()
{
    document.getElementById("Btn").disabled = true;
    \\do something for one minute
    document.getElementById("Btn").disabled = false;
}

html:

 <button type="button" id="Btn" onclick="myFunc()">Generate!</button>

最佳答案

您的代码运行良好。也许您的函数运行得很快,这就是为什么它看起来像垃圾邮件。

如果您通过 ajax 调用函数,请确保 asyncfalse(默认为 true)

function myFunc() {
  document.getElementById("Btn").disabled = true;
  setTimeout(function() {
    console.log('hey');
    document.getElementById("Btn").disabled = false;
  }, 1000);

}
<button type="button" id="Btn" onclick="myFunc()">Generate!</button>

关于javascript - 运行函数时禁用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55725254/

相关文章:

javascript - 如何在 Lo-Dash 中使用 thisArg?

javascript - 使图像响应高度和宽度

javascript - 使用 reangular 将表单数据从 AngularJs 前端发布到 NodeJS RESTful API

javascript - 无法使用 js/jquery 获取多个元素上的 Codemirror textarea 值

javascript - 立即嵌入 SoundCloud 录音?

javascript - 如何在 AngularJS 脚本中使用孟加拉语?

javascript - 过滤器状态在 React 中无法正常工作

javascript - 使用jquery切换div的高度

javascript - 使用 Parse Javascript SDK 查询 GeoPoint withinMiles

javascript - 如何更改javascript函数中的标签文本?