【发布时间】:2018-08-18 00:34:01
【问题描述】:
我想在单击按钮后禁用按钮 10 分钟,即使在刷新时它也会保持禁用状态。我怎样才能在 javascript 或 jquery 中制作它?我似乎无法为我的代码制作它。
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js">
$(document).ready(function(){
var limit = 10*60*1000;
btn.attr("disabled", true);
btn.css('cursor','not-allowed');
message.text('wrong answer, please wait 10 minutes before trying again');
var timer = setTimeout(disableMyButton, limit);
function disableMyButton(){
btn.removeAttr("disabled");
message.text('');
localStorage.setItem("isMyButtonDisabled", "true");
}
if(localStorage.getItem("isMyButtonDisabled") == "true"){
message.text('');
btn.removeAttr("disabled");
window.clearTimeout(timer);
}
});
</script>
【问题讨论】:
-
以防篡改的方式?如果你在客户端做这件事就很难了。
-
如果你想100%不被点击,你需要使用数据库。如果您只是不希望它出现并且您有后端验证,只需使用 HTML5 存储或 cookie。
-
以非防篡改的方式,我会改变方法。按下按钮时将当前时间戳保存到本地存储,然后时不时检查一下当前时间戳减去保存的时间戳是否超过 10 分钟。在这种情况下,请重新启用该按钮。
-
@DawidZbiński 本身并不真正需要数据库。您指的是服务器端代码吗?
-
不仅添加和删除
disabled属性,还添加和删除点击事件处理程序。否则,没有什么能阻止我检查按钮,自己删除disabled属性并在 10 分钟前单击按钮。
标签: javascript