2015-06-26 29 views
1
<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> 

如何禁用基于我的脚本上指定的时间的单选按钮?它看起来像来自本教程其他部分的示例,但它不起作用。我缺乏什么?在服务器时间激活单选按钮

+0

试试这个http://jsfiddle.net/wrwfLpj8/ – Sushil

回答

0

它可以工作,但是您没有将检查的值设置为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; 
} 
0

您正在执行的脚本之前加载代码,以便脚本应该页面加载后进行。

<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> 
+0

的问题是标签的JavaScript,所以我相信他想这样做只是在普通的JavaScript。 – Sushil

+0

谢谢,@Sushil我修正了:) – Amir

+1

很棒@Amir。谢谢 – Sushil

1

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

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