Javascript 我想禁用忘记密码按钮30秒后,用户点击它一次,以避免多次触发电子邮件忘记密码

Javascript 我想禁用忘记密码按钮30秒后,用户点击它一次,以避免多次触发电子邮件忘记密码,javascript,Javascript,您好,我必须在用户单击一次后立即禁用忘记密码按钮30秒&一个警报应显示他“请在30秒后重试”。这是为了避免多次触发向用户提供临时密码的邮件。30秒后,该按钮应再次启用 我尝试在单击后使用setTimeout禁用按钮30秒。。我不知道如何使用它。请帮我做这个 <button> <a id="forgotPassword" class="cursorPointer loginlables"> Forgot Password? </a>

您好,我必须在用户单击一次后立即禁用忘记密码按钮30秒&一个警报应显示他“请在30秒后重试”。这是为了避免多次触发向用户提供临时密码的邮件。30秒后,该按钮应再次启用

我尝试在单击后使用setTimeout禁用按钮30秒。。我不知道如何使用它。请帮我做这个

  <button>
    <a id="forgotPassword" class="cursorPointer loginlables">
      Forgot Password?
    </a>
  </button>

忘记密码了?

用户应该能够单击忘记密码按钮一次,如果在第一次单击后的30秒内再次尝试单击按钮,则应显示错误消息。

您可以设置一个全局变量,该变量保存用户单击按钮的时间,并启动一个操作(如发送提醒)。每次为按钮的单击处理程序输入回调时,都会将此时间与当前时间进行比较,如果差异小于30秒,则会显示一个警报对话框

Javascript为时间和日期操作提供了Date对象

var lastCall=0;
var-timeToWait=30;
函数doAction(){
var timePassed=Date.now()-lastCall;
if(timePassed>=timeToWait*1000){
控制台日志(“发送电子邮件”);
lastCall=Date.now();
}否则{
警报(“请等待”+parseInt(timeToWait-(timePassed/1000))+“秒”);
}
}
document.getElementById(“放弃密码”).addEventListener(“单击”,doAction)

忘记密码

您可以通过设置超时功能来实现这一点

document.getElementById("forgotPassword").addEventListener('click', function(){
        alert("Button is disabled for 30sec")
        document.getElementById("forgotPassword").disabled = true;
        setTimeout(function(){document.getElementById("forgotPassword").disabled = false;},30000);
    })

在您未来的帖子中,请添加您的代码,以便我们能够更好地帮助您

首先,我一直被告知在JS中使用setTimeout不是一个好习惯,所以请记住,我的解决方案可能不是最好的,但这就是一个

函数myfunction(){
btn=document.getElementById('btn');
如果(btn.innerHTML==‘单击我’){
console.log('Clicked!')
btn.innerHTML='稍等一会儿';
设置超时(()=>{
btn.innerHTML='单击我';
}, 5000);
}
}

单击我
您的代码在哪里?你试过什么?哪一行导致错误?请编辑您的问题,将代码放在问题中,而不是放在注释中。欢迎使用堆栈溢出。我们将在这里帮助您,但您需要先尝试编写一些代码。如果您不知道如何编写代码,则可能需要进行一些学习first@mikkel我第一次在Stockoverflow发布一个问题,我是一个新用户。我会采纳你的建议并继续努力改进。请不要对我的问题给出否定的标志…。@Vijay.vashist我为可能看起来不公平的批评道歉,但你发布的唯一代码是html,而你没有发布你的js-这就是问题所在,对吗?只提供问题描述而不提供代码的建议是非常困难的。如果你读了,可能会更清楚。你会在里面读到的部分内容是,我们不会为你写代码(这似乎是你要求的)。我希望这能解释为什么我否决了你的问题。非常感谢你的快速回答。我一定会试试这个。:)