Javascript 我想禁用忘记密码按钮30秒后,用户点击它一次,以避免多次触发电子邮件忘记密码
您好,我必须在用户单击一次后立即禁用忘记密码按钮30秒&一个警报应显示他“请在30秒后重试”。这是为了避免多次触发向用户提供临时密码的邮件。30秒后,该按钮应再次启用 我尝试在单击后使用setTimeout禁用按钮30秒。。我不知道如何使用它。请帮我做这个Javascript 我想禁用忘记密码按钮30秒后,用户点击它一次,以避免多次触发电子邮件忘记密码,javascript,Javascript,您好,我必须在用户单击一次后立即禁用忘记密码按钮30秒&一个警报应显示他“请在30秒后重试”。这是为了避免多次触发向用户提供临时密码的邮件。30秒后,该按钮应再次启用 我尝试在单击后使用setTimeout禁用按钮30秒。。我不知道如何使用它。请帮我做这个 <button> <a id="forgotPassword" class="cursorPointer loginlables"> Forgot Password? </a>
<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-这就是问题所在,对吗?只提供问题描述而不提供代码的建议是非常困难的。如果你读了,可能会更清楚。你会在里面读到的部分内容是,我们不会为你写代码(这似乎是你要求的)。我希望这能解释为什么我否决了你的问题。非常感谢你的快速回答。我一定会试试这个。:)