【问题标题】:Activate radio buttons on server time在服务器时间激活单选按钮
【发布时间】:2015-09-13 23:52:30
【问题描述】:
<script language="javascript" type="text/javascript">
if (new Date().getHours() < 11) 
    {
        document.getElementById("r1").checked = true;
    }   else if (new Date().getHours() < 16)
    {
        document.getElementById("r1").disabled = true;
        document.getElementById("r2").checked;
    }
        else if (new Date().getHours() < 21)
    {
        document.getElementById("r1").disabled=true;
        document.getElementById("r2").disabled=true;
        document.getElementById("r3").checked;
    }
</script>

<label class="label_radio" for="radio-01">
    <input name="bdw" id="r1" type="radio"/>11:00 AM
    <input name="bdw" id="r2" type="radio"/>4:00 PM
    <input name="bdw" id="r3" type="radio"/>9:00 PM
</label>

如何根据脚本中指定的时间停用单选按钮?它看起来像本教程另一部分的示例中所述,但它不起作用。我缺什么吗?

【问题讨论】:

标签: javascript php html radio-button activation


【解决方案1】:

而不是使用 var date = new Date(); 或 var hours = date.getHours(); 。您应该使用 PHP 将时间存储在变量中,然后比较该变量的时间。由于 JS 会跟踪客户端时间,因此如果有人更改了他的计算机系统时间,那么使用 JS 时间进行比较很容易被欺骗。

hours = <?php echo date("h"); ?>
hours+=1;
if(hours>23){
hours = 0;
}

【讨论】:

    【解决方案2】:

    它可以工作,但是您没有将选中的值设置为true。 .checked 的默认值为false。而且您没有禁用其他单选按钮。

    在这里查看:https://jsfiddle.net/qsuxp12h/

    var date = new Date();
    //var hours = date.getHours();
    var hours = 10; // <- Mess around to test it
    if (hours < 11) {
        document.getElementById("r2").disabled = true;
        document.getElementById("r3").disabled = true;
        document.getElementById("r1").checked = true;
    } else if (hours < 16) {
        document.getElementById("r1").disabled = true;
        document.getElementById("r3").disabled = true;
        document.getElementById("r2").checked = true;
    } else if (hours < 21) {
        document.getElementById("r1").disabled = true;
        document.getElementById("r2").disabled = true;
        document.getElementById("r3").checked = true;
    }
    

    【讨论】:

      【解决方案3】:

      您在加载代码之前执行脚本,因此脚本应该在页面加载后完成。

      <label class="label_radio" for="radio-01">
      <input name="bdw" id="r1" type="radio"/>11:00 AM
      <input name="bdw" id="r2" type="radio"/>4:00 PM
      <input name="bdw" id="r3" type="radio"/>9:00 PM
      </label>
      
      <script language="javascript" type="text/javascript">
          current_time = new Date().getHours();
      if (current_time < 11) 
        {
          document.getElementById("r1").checked = true;
        }   else if (current_time < 16)
        {
          document.getElementById("r1").disabled = true;
           document.getElementById("r2").checked = true;
        }
          else if ( current_time < 21)
        {
          document.getElementById("r1").disabled=true;
          document.getElementById("r2").disabled=true;
          document.getElementById("r3").checked = true;
        }
      </script>
      

      【讨论】:

      • 这个问题被标记为 javascript,所以我相信他只想用普通的 javascript 来做。
      • 谢谢,@Sushil 我修好了 :)
      猜你喜欢
      • 1970-01-01
      • 2014-01-07
      • 2013-06-28
      • 1970-01-01
      • 2012-02-19
      • 2016-06-27
      • 2014-12-12
      • 2015-11-12
      • 2014-01-05
      相关资源
      最近更新 更多