2015-06-26 30 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; 
}