Задать атрибут 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, время: 23:04. |