禁用4小时提交按钮
问题描述:
我已经构建了一个ASP.Net MVC 5应用程序。在其中一个Razor视图中,我有一个提交按钮,用户可以点击发送电子邮件和短信。但是,当用户单击“提交”按钮时,消息可能需要10或15秒才能发出。由于时间延迟,用户有时多次点击提交按钮,认为第一次点击提交按钮不起作用。即使向用户显示警告信息,也不要单击提交按钮多次,他们仍然这样做。禁用4小时提交按钮
我现在想禁用4小时的提交按钮。我能够禁止使用一些JQuery的
$('#myButton').prop('disabled', true);
然而,这是没有多大帮助的提交按钮,因为如果用户再次访问该页面或刷新,该按钮可以再次点击。相反,我想要的是提交按钮从最初点击4小时后被禁用。
我真的不知道什么是最好的方式来做到这一点。我知道我可以在数据库中存储按钮被点击的日期时间并进行验证,但我不确定这是否是最好的方法。也许可以使用会话变量?
有没有人遇到过这样的情景?任何建议将不胜感激。
谢谢。
答
下面是禁用按钮3秒的示例。
$('#enter').on('click',function(){
document.getElementById("enter").disabled=true;
setInterval(function(){document.getElementById("enter").disabled=false;},3000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button id='enter'>Try it</button>
一个客户端的页不会(且不应)具有4小时的寿命。要做到这一点,最好在按钮再次可用时(无论是在localStorage中,还是在会话中或服务器端数据存储中)存储时间戳,然后检查客户端是否定期通过该日期。 –
你的按钮是一个服务器控件,就像''?如果是这样的话,当页面加载到控件的Page_Init方法中,4小时没有过去时,您可以实现逻辑来禁用按钮,并且像现在一样立即通过jQuery禁用它。 –
Zack
@Zack它是一个MVC应用程序,所以没有服务器控件。 – tgriffiths