Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.07.2012, 12:16
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Задать атрибут 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>
Ответить с цитированием
  #2 (permalink)  
Старый 27.07.2012, 12:23
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

<input type="text" id="youname" readonly />
тут readonly не должно быть, конечно. Добавил нечайно в рамках научного тыка
Ответить с цитированием
  #3 (permalink)  
Старый 27.07.2012, 12:26
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Поменяйте местами эти две строчки
return nam;
document.getElementById("youname").setAttribute("readonly")

так как при return'e функция прекращает дальнейшее выполнение.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #4 (permalink)  
Старый 27.07.2012, 12:27
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

document.getElementById("youname").setAttribute("readonly", "readonly");
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 27.07.2012, 14:41
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Спасибо огромное.
А почему этот метод при обращении по имени не работает?

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>
Ответить с цитированием
  #6 (permalink)  
Старый 27.07.2012, 14:44
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от PashPP
document.getElementsByName
возвращает колекцию элементов, и что обратится к свойствам элемента в колекции, их нужно перебрать, или указать индекс:
document.getElementsByName('eot')[0].setAttribute("disabled", "disabled")
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #7 (permalink)  
Старый 27.07.2012, 15:08
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Почему все так любят использовать атрибуты? Есть же свойства.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #8 (permalink)  
Старый 27.07.2012, 15:11
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Ну и как решить дело в нашем случае свойствами? И в чем вообще выгода?
Ответить с цитированием
  #9 (permalink)  
Старый 27.07.2012, 16:35
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

<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>
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #10 (permalink)  
Старый 27.07.2012, 16:41
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

А точнее, если я правильно понял автора:
<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>
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск