简体   繁体   English

如何限制Javascript每天的按钮点击次数?

[英]How to limit number of button clicks per day in Javascript?

I want to limit the number of clicks on a button per day to 5 clicks using cookies. So when a user clicks 5 times, the button will no longer be clickable.我想使用 cookies 将按钮每天的点击次数限制为 5 次。因此当用户点击 5 次时,该按钮将不再可点击。 I managed to do that, but the problem is when I refresh the page, the button is clickable again.我设法做到了,但问题是当我刷新页面时,按钮再次可点击。 So how to apply cookies to remember the user clicks?那么如何应用cookies来记住用户点击呢?

My code:我的代码:

<input type="text" class="form-control" id="prompt" placeholder="Type anything">
<button id="the-button" type="submit">Send</button>
<script
  src="https://code.jquery.com/jquery-3.6.0.min.js"
  integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
  crossorigin="anonymous">
</script>   
<script type="text/javascript">                                         
localStorage.setItem("limit_click",5);
localStorage.setItem("count",1);
$("#the-button").on("click",function(){
    var limit = localStorage.getItem("limit_click");
    let count = parseInt(localStorage.getItem("count"));    
    if(count>=limit){
        alert('Your free limit counts has expired, please try again tomorrow or consider extending your plan.');
    }
    else{
        localStorage.setItem("count",parseInt(count)+1);
    }
}); 
</script>

I blocked the button when clicked 5 times.单击 5 次时我阻止了按钮。 But, when page is refreshed, the button is clickable again.但是,当页面刷新时,该按钮再次可点击。

What I want to do: Block the button after 5 clicks, and then even when the page is refreshed, the button is still blocked.我想做的是:点击 5 次后阻止按钮,然后即使刷新页面,按钮仍然被阻止。

Your code fails to check the localStorage before setting it to 1. Every page load you do localStorage.setItem("count",1);您的代码在将其设置为 1 之前无法检查 localStorage。您执行的每个页面加载localStorage.setItem("count",1); . . This resets the count to 1, so every page load the localStorage is refreshed.这会将计数重置为 1,因此每次加载 localStorage 的页面都会刷新。 This doesn't make sense, so do:这没有意义,所以:

if(!localStorage.getItem("count")){
    localStorage.setItem("count",1);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM