根据小时数隐藏按钮

时间:2015-08-10 11:24:38

标签: javascript button time hide

在页面上,“保存”按钮应根据系统时间可见或隐藏。 我想在上午10点之后每天隐藏保存按钮。 我的代码破碎了

<script type="text/javascript">
 var currentTime = new Date();
 var hours = currentTime.getHours();
 var newButton = document.getElementById("btn1");

if(hours>10) {
 newButton.style.display = "none";
//tried this one too
// document.getElementById('btn1').style.visibility = 'hidden';
}
else {
 newButton.style.display = "block";
}
</script>

在HTML代码中我添加了

<input id="btn1" type="button" value="Save" name="btnSave" onclick="javascript: {ddwrt:GenFireServerEvent('__commit')}" />

任何建议或帮助。

2 个答案:

答案 0 :(得分:1)

您的功能非常简单,例如:

window.addEventListener("load", function(){
  var newButton = document.getElementById("btn1");
  newButton.style.visibility = new Date().getHours() > 10? 'none' : '';
});

请注意,按钮的默认显示值为inline-block,但并非所有浏览器都必须使用该值,并且CSS可用于将其设置为其他值。将显示设置为&#34;&#34; (空字符串)允许它采用特定浏览器或样式表的默认或继承样式,并且在页面设计者改变主意时,您不必更改代码。

此外,要真正禁用该按钮,您应将其已禁用属性设置为true。

答案 1 :(得分:0)

将其包装在onload事件中。您的按钮还没有在页面上。尚未呈现的元素无法解决。

window.addEventListener("load", function(){
     var currentTime = new Date();
     var hours = currentTime.getHours();
     var newButton = document.getElementById("btn1");

    if(hours>10) {
     newButton.style.display = "none";
    }
    else {
     newButton.style.display = "block";
    }
}, false);

这样,当加载页面并且存在相关按钮时,它会触发。

或者像Deef评论的那样,将脚本标记放在页面底部。