在某些日期启用按钮&时间

时间:2014-01-08 17:07:27

标签: javascript button

我想在每天下午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>

4 个答案:

答案 0 :(得分:0)

DEMO

尝试在元素上设置属性,而不是在元素对象上设置属性:

document.getElementById('checktimer').setAttribute('disabled');

要删除它,请使用

document.getElementById('checktimer').removeAttribute('disabled');

正如其他人所提到的,你应该将checktimer元素缓存在一个变量中,而不是每次都查找它。

我改变了其他一些小事:

  • 删除了您的Javascript评论内容。你不需要那些。
  • 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)上验证它。在那里,您可以检查日期时间验证,并在页面上写下按钮。