Задать атрибут readonly по клику на чекбокс и назад
Доброго дня. Нужно, чтоб когда был отмечен флажок, поле ввода было в ридонли. При снятии флажка имя должно возвращаться. Собственно, проблема с заданием атрибута ридонли.
<script type="text/javascript">
function anon() {if (document.getElementById("anonym").checked)
{
nam= document.getElementById("youname").value;
document.getElementById("youname").value= "Anonymous";
return nam;
document.getElementById("youname").setAttribute("readonly")
}
else {
document.getElementById("youname").value= nam};
}
</script>
<form name="analize">
<label for="youname">Ваше имя<label>
<input type="text" id="youname" readonly />
<input type="checkbox" id="anonym" onclick="anon()"/>
<label for="anonym"> Аноним </label>
</form>
|
<input type="text" id="youname" readonly />
тут readonly не должно быть, конечно. Добавил нечайно в рамках научного тыка |
Поменяйте местами эти две строчки
return nam;
document.getElementById("youname").setAttribute("readonly")
так как при return'e функция прекращает дальнейшее выполнение. |
document.getElementById("youname").setAttribute("readonly", "readonly");
|
Спасибо огромное.
А почему этот метод при обращении по имени не работает? document.getElementsByName("eot").setAttribute("di sabled", "disabled") <form name="frm"> <label><input type="radio" name="eot" value="1" /> EOT </label> <label><input type="radio" name="eot" value="2" /> Встречался </label> <label><input type="radio" name="eot" value="3" /> Встречаюсь </label> </form> |
Цитата:
document.getElementsByName('eot')[0].setAttribute("disabled", "disabled")
|
Почему все так любят использовать атрибуты? Есть же свойства.
|
Ну и как решить дело в нашем случае свойствами? И в чем вообще выгода?
|
<input type="checkbox" id="checkbox">
<input type="text" id="text">
<script>
document.getElementById( 'checkbox' ).addEventListener( 'click', function(){
var textInput = document.getElementById( 'text' );
textInput.readOnly = this.checked;
});
</script>
|
А точнее, если я правильно понял автора:
<input type="checkbox" id="checkbox" checked>
<input type="text" id="text" value="Anon">
<script>
var name;
document.getElementById( 'checkbox' ).addEventListener( 'click', function(){
var textInput = document.getElementById( 'text' );
textInput.readOnly = !this.checked;
if( this.checked ) {
textInput.value = name;
} else {
textInput.value = textInput.defaultValue;
}
});
document.getElementById( 'text' ).addEventListener( 'keyup', function(){
name = this.value;
});
</script>
|
| Часовой пояс GMT +3, время: 16:55. |