Javascript 可以在函数应该运行时设置计时器
我有一个按钮,当用户点击按钮时,它会提交一个表单。但我只希望他们能点击它一次。此外,按钮应返回其原始状态,即24小时后再次可点击 请问我该怎么办。这是表单和按钮,我考虑添加一个事件监听器,在点击按钮后隐藏按钮,24小时后再次显示。可能吗Javascript 可以在函数应该运行时设置计时器,javascript,jquery,node.js,mongoose,countdown,Javascript,Jquery,Node.js,Mongoose,Countdown,我有一个按钮,当用户点击按钮时,它会提交一个表单。但我只希望他们能点击它一次。此外,按钮应返回其原始状态,即24小时后再次可点击 请问我该怎么办。这是表单和按钮,我考虑添加一个事件监听器,在点击按钮后隐藏按钮,24小时后再次显示。可能吗 <form action="/earn" method="post" onsubmit='disableButton()'><button type="submit" id='btn'
<form action="/earn" method="post" onsubmit='disableButton()'><button type="submit" id='btn' class="btn btn-info font-18">Earn</button></form>
我曾考虑添加一个事件监听器,在点击按钮后隐藏按钮,24小时后再次显示。可能吗
<form action="/earn" method="post" onsubmit='disableButton()'><button type="submit" id='btn' class="btn btn-info font-18">Earn</button></form>
是的,这很简单
下面的代码将在单击按钮后隐藏按钮,然后在24小时后取消隐藏。这是一个更简单的版本,可以在网页未刷新时使用。要使它即使在刷新后也能工作,您必须在服务器端控制它,或者使用cookie来记住下一次显示它的时间
let button = document.getElementById("btn");
button.addEventListener("click", () => {
button.style.visibility = "hidden";
// show it again in 24 hours
setTimeout(() => {
button.style.display = "visible";
}, 1000 * 60 * 60 * 24);
});
还请记住,任何对软件稍有了解的人都可以击败这一级别的保护——这纯粹是为了让用户界面显示您希望它显示的内容。如果需要在接下来的24小时内防止服务器上发生某些事情,则需要在服务器本身上强制执行。您可能会使用与此用户关联的某种持久状态,然后每当您在服务器上收到此表单提交时,您都会检查该持久状态,以查看是否允许用户执行此操作 我曾考虑添加一个事件监听器,在点击按钮后隐藏按钮,24小时后再次显示。可能吗
<form action="/earn" method="post" onsubmit='disableButton()'><button type="submit" id='btn' class="btn btn-info font-18">Earn</button></form>
是的,这很简单
下面的代码将在单击按钮后隐藏按钮,然后在24小时后取消隐藏。这是一个更简单的版本,可以在网页未刷新时使用。要使它即使在刷新后也能工作,您必须在服务器端控制它,或者使用cookie来记住下一次显示它的时间
let button = document.getElementById("btn");
button.addEventListener("click", () => {
button.style.visibility = "hidden";
// show it again in 24 hours
setTimeout(() => {
button.style.display = "visible";
}, 1000 * 60 * 60 * 24);
});
还请记住,任何对软件稍有了解的人都可以击败这一级别的保护——这纯粹是为了让用户界面显示您希望它显示的内容。如果需要在接下来的24小时内防止服务器上发生某些事情,则需要在服务器本身上强制执行。您可能会使用与此用户关联的某些持久状态,然后每当您在服务器上收到此表单提交时,您都会检查该持久状态,以查看是否允许用户执行此操作。只需添加一个持续时间为24小时的超时:
setTimeout(()=>{yourCode()},1000*60*60*24)
只需添加一个持续时间为24小时的超时:setTimeout(()=>{yourCode()},1000*60*60*24)代码>