我只是放弃这样做并需要帮助,因为我的大脑终于卡住了......
这是情况
我希望此按钮 [提交表单] 根据时间禁用(不会消失),假设我希望此按钮正常工作每天从下午5:00开始 - 上午12:00 但之后,此按钮将被禁用,用户无法点击按钮(按钮只是冻结),最好还有消息说提交表单仅在商务时间左右可用
这个按钮也只能每天工作,周末除外,这样人们就无法在周末(周六和周日)提交任何表格
时间基于我目前的国家时间...嗯这很难解释,我的意思是..比如UTC + 8太平洋时间?因为提交此表单的用户基于我当地的时间
如果有人可以帮助或愿意尝试......这对我来说很重要
更新: 这是我发现几乎我想要的封闭脚本,除非他们在周末没有禁用按钮
<input class="submit" type="submit" id="checktime" value="Check"/>
<script type="text/javascript" defer="defer">
<!--
var enableDisable = function(){
var UTC_hours = new Date().getUTCHours() +1;
if (UTC_hours > 17 && UTC_hours < 24){
document.getElementById('checktime').disabled = false;
}
else
{
document.getElementById('checktime').disabled = true;
}
};
setInterval(enableDisable, 1000*60);
enableDisable();
// -->
</script>
相信我从成员stackoverflow得到的代码:来自2014年的Marko
答案 0 :(得分:1)
无论您做什么,请记住您还必须在服务器端检查提交时间的有效性。在浏览器中禁用按钮不会停止&#39; hackerish&#39;用户提交表格/任何内容。
否则,您可以做的最好的事情是定期检查并启用/禁用具有该粒度的按钮(例如每5秒左右)。
setInterval(function(){
var now=new Date();
document.getElementById("culprit").disabled=now.getSeconds()<30;
document.getElementById("time").innerHTML=now.getSeconds();
},5000);
&#13;
<button id="culprit">Clicky</button>
<div id="time"></div>
&#13;
这个小型演示会检查它是第一个还是后半个部分(已经足够等待,即使它显示时间),对于您的真实代码,您需要更复杂的测试建议@ StefanOctavian&#39; answer:
var now = new Date()
document.getElementById("culprit").disabled=now.getDay() >= 5 || now.getHours() < 17;
答案 1 :(得分:0)
如果你想只使用javascript实现这一点,你可以像这样使用Date
对象:当页面加载时,获取当前日期和时间的信息,并在必要时禁用按钮:
var now = new Date()
if(now.getDay() >= 5 // Saturday & Sunday
|| (now.getHours() >= 5 && now.getHours() < 12))
button.disabled = true
然后,要在时钟停止12 AM时再次启用它,您可以获得Date.now()
和now.setHours(12)
之间的时间间隔,然后使用setTimeout
重新激活按钮。