Консультация № 62899
16.11.2006, 17:07
0.00 руб.
0 1 1
Даны два радио переключателя и текстовое поле. Надо чтобы при значении одного переключателя текстовое поле было активно, а другого дисаблилось. В приложении что то накатал: после первого переключения поле дисаблится, но после не становится активным.

Приложение:
<form name="form"><input name="name" type="radio" value="1" onchange="ChangeM();" /><input name="name" type="radio" value="0" onchange="ChangeM();" checked="checked" /><input type="text" name="text" value="" /></form>function ChangeM(){ if (document.form.name.value != "0") { document.form.text.disabled=true; } else { document.form.text.disabled=false; }}

Обсуждение

Неизвестный
16.11.2006, 20:42
общий
это ответ
Здравствуйте, Slade!

Для начала, событие OnChange применимо только для checkbox-ов. Поэтому его надо заменить на OnClick.
Далее, попробуйте вставить alert("document.form.name.value"); и вы получите undefined! Вероятно, именно из-за него условие в if всегда оказывалось ложным, что приводило к disable текстового поля. Хотя у меня (Opera) с полем вообще ничего не происходило.
Поэтому надо как-то различить radio‘s, например, проставив соответственно ID="id1" и ID="id2". И заменить условие в функции на (document.form.id1.checked)
Удачи!

Приложение:
<html><body><form name="form"><input name="name" id="id1" type="radio" value="1" onclick="ChangeM();" /><input name="name" type="radio" value="0" onclick="ChangeM();" checked /><input type="text" name="text" value="" /></form></body><script language=JavaScript type="text/javascript">function ChangeM(){ if (document.form.id1.checked) { document.form.text.disabled=true; } else { document.form.text.disabled=false; }}</script></html>
Форма ответа