我想在每天下午5点到晚上10点之间启用一个按钮,星期一除外。
禁用此按钮后,系统会显示<p></p>
(例如向访问者发送通知,说明其被禁用的原因。)
我确实尝试自己编写JavaScript,但似乎无法正常工作。我对这种语言一无所知,并在不同网站的帮助下完成了脚本。
这是我的剧本:
<input class="submit" type="submit" id="checktimer" value="Check"/>
<p id=timer style="display: none;">Lorem ipsum</p>
<script type="text/javascript" defer="defer">
<!--
var enableDisable = function(){
var UTC_hours = new Date().getUTCHours() +1;
var day = new Date().getDay();
if (day == 1){
document.getElementById('checktimer').disabled = true;
document.getElementById('timer').style.display = 'block';
}
else{
if (UTC_hours > 16 && UTC_hours < 22){
document.getElementById('checktimer').disabled = false;
document.getElementById('timer').style.display = 'none';
}
else
{
document.getElementById('checktimer').disabled = true;
document.getElementById('timer').style.display = 'block';
}
}
};
setInterval(enableDisable, 1000*60);
enableDisable();
// -->
</script>
答案 0 :(得分:0)
尝试在元素上设置属性,而不是在元素对象上设置属性:
document.getElementById('checktimer').setAttribute('disabled');
要删除它,请使用
document.getElementById('checktimer').removeAttribute('disabled');
正如其他人所提到的,你应该将checktimer
元素缓存在一个变量中,而不是每次都查找它。
我改变了其他一些小事:
id
元素的p
属性值附加了引号。答案 1 :(得分:0)
这样可行:
var enableDisable = function(){
var UTC_hours = new Date().getUTCHours(); //Don't add 1 here
var day = new Date().getUTCDay(); //Use UTC here also
if (day != 1 && UTC_hours >= 17 && UTC_hours < 22){
document.getElementById('checktimer').disabled = false;
document.getElementById('timer').style.display = 'none';
}else{
document.getElementById('checktimer').disabled = true;
document.getElementById('timer').style.display = 'block';
}
};
setInterval(enableDisable, 1000*60);
enableDisable();
干杯
答案 2 :(得分:-1)
删除HTML评论<!--
或使用//
<script type="text/javascript">
//<!--
var enableDisable = function(){
var UTC_hours = new Date().getUTCHours() +1;
var day = new Date().getDay();
if (day == 1){
document.getElementById('checktimer').disabled = true;
document.getElementById('timer').style.display = 'block';
}
else{
if (UTC_hours > 16 && UTC_hours < 22){
document.getElementById('checktimer').disabled = false;
document.getElementById('timer').style.display = 'none';
}
else
{
document.getElementById('checktimer').disabled = true;
document.getElementById('timer').style.display = 'block';
}
}
};
setInterval(enableDisable, 1000*60);
enableDisable();
// -->
</script>
您的脚本应该正常工作
答案 3 :(得分:-1)
实际上,您不应该基于JavaScript DateTime启用或禁用该按钮,因为它会获取客户端计算机的日期,这意味着如果用户更改了系统日期,则会启用该按钮。您应该在服务器端代码(例如PHP或ASP)上验证它。在那里,您可以检查日期时间验证,并在页面上写下按钮。