Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可以在函数应该运行时设置计时器_Javascript_Jquery_Node.js_Mongoose_Countdown - Fatal编程技术网

Javascript 可以在函数应该运行时设置计时器

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'

我有一个按钮,当用户点击按钮时,它会提交一个表单。但我只希望他们能点击它一次。此外,按钮应返回其原始状态,即24小时后再次可点击

请问我该怎么办。这是表单和按钮,我考虑添加一个事件监听器,在点击按钮后隐藏按钮,24小时后再次显示。可能吗

<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)