2015-06-26 5 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

great @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; 
}