[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: управление радиокнопками
Alecs
Приветствую уважаемых форумчан!
Предлагаю вопрос на засыпку. В инете ответа так и не нашел.
В форме сделал поле ввода данных. При изменении содержимого поля вызывается функция javascript которая должна переключить трехпозиционную радиокнопку в нужное положение. И вот здесь у меня загвоздка. Все способы которые я пробовал вызывают ошибку. Если не трудно, прошу выложить пример работающего кода (достаточно одной строчки), или дать ссылку по теме.



Спустя 13 минут, 47 секунд (31.07.2008 - 12:08) sergeiss написал(а):
Вот такой пример (рабочий):
<input name="radiobut" type="radio" value="val1" />
<input name="radiobut" type="radio" value="val2" />
<input type="button" name="Button" value="Button" onclick="radiobut[0].checked=true;" />

При нажатии кнопки выбирается первая величина, вне зависиости от предыдущего состояния.

Спустя 43 минуты, 55 секунд (31.07.2008 - 12:52) Alecs написал(а):
Цитата(sergeiss @ 31.7.2008, 9:08) [snapback]44893[/snapback]
Вот такой пример (рабочий):
<input name="radiobut" type="radio" value="val1" />
<input name="radiobut" type="radio" value="val2" />
<input type="button" name="Button" value="Button" onclick="radiobut[0].checked=true;" />

При нажатии кнопки выбирается первая величина, вне зависиости от предыдущего состояния.


Я так и думал. Этот вариант я опробовал самым первым.
Вот выкладываю код. Почему он не работает?
Код
<script language="JavaScript">
function swicher (vvv){
document.getElementsByName(vvv)[1].checked=true;
}
</script>
<form action="lop.php" method="get">
<tr bgcolor=\"#808080\">
    <td align="right"><input  onchange="swicher (mode_0)" type="text" name="zz1"></td>
    <td><input type="radio" name="mode_0" value="0" CHECKED></td>
    <td><input type="radio" name="mode_0" value="1"></td>
    <td><input type="radio" name="mode_0" value="2"></td>
</tr>
</form>

Спустя 13 минут, 49 секунд (31.07.2008 - 13:06) sergeiss написал(а):
onchange срабатывает не тогда, когда ты что-то меняешь, а когда фокус смещается с этого поля ввода (с уже измененным текстом) на другое что-то. Я по этим граблям прыгал не далее, как пару дней тому назад smile.gif А идея была подобная: только при изменении текста кнопка submit становится доступной, иначе видна, но нажать нельзя.

В итоге я повесил функцию-обработчик как на onchange, так и на onkeypress. Сейчас всё работает, как часы (швейцарские, дорогие).

При этом уже не важно, за счет чего изменяется текст - это может быть как нажатие клавиш, так и любые изменения, сделанные программно.

Спустя 33 минуты, 5 секунд (31.07.2008 - 13:39) Alecs написал(а):
Цитата(sergeiss @ 31.7.2008, 10:06) [snapback]44896[/snapback]
onchange срабатывает не тогда, когда ты что-то меняешь, а когда фокус смещается с этого поля ввода (с уже измененным текстом) на другое что-то. Я по этим граблям прыгал не далее, как пару дней тому назад smile.gif А идея была подобная: только при изменении текста кнопка submit становится доступной, иначе видна, но нажать нельзя.

В итоге я повесил функцию-обработчик как на onchange, так и на onkeypress. Сейчас всё работает, как часы (швейцарские, дорогие).

При этом уже не важно, за счет чего изменяется текст - это может быть как нажатие клавиш, так и любые изменения, сделанные программно.

Совершенно согласен, не важно на какое событие ставить обработчик. Только моя проблема не в том, что не вызывается функция, а в том что во время выполнения функции выплывает ошибка. Отладчик FireBug выдает такой текст:
document.getElementsByName(vvv)[1] has no properties
swicher([input 0, input 1, input 2])index.php (line 124)
onchange(change )index.php (line 1)
[Break on this error] <td align="CENTER">

Спустя 13 минут, 1 секунда (31.07.2008 - 13:52) sergeiss написал(а):
Ну дык... Ты сначала сказал "код не работает". А оказывается, он работает, но с ошибкой. А это "две большие разницы" smile.gif

Поставь при вызове mode_0 в апострофы, т.е. swicher( 'mode_0'). Ты же подразумеваешь символьную строку (в функции), а передаешь НЕ строку.

Спустя 30 минут, 2 секунды (31.07.2008 - 14:22) Alecs написал(а):
Цитата(sergeiss @ 31.7.2008, 10:52) [snapback]44905[/snapback]
Ну дык... Ты сначала сказал "код не работает". А оказывается, он работает, но с ошибкой. А это "две большие разницы" smile.gif

Поставь при вызове mode_0 в апострофы, т.е. swicher( 'mode_0'). Ты же подразумеваешь символьную строку (в функции), а передаешь НЕ строку.


Спасибо. Себе уже настучал пяткой по затылку, чтоб внимательнее был. rolleyes.gif

Спустя 5 месяцев, 26 дней, 5 часов, 44 секунды (1.02.2009 - 20:23) Guest написал(а):
ohmy.gif wink.gif laugh.gif dry.gif rolleyes.gif sad.gif mad.gif blink.gif ph34r.gif unsure.gif smile.gif cool.gif huh.gif tongue.gif jjavascript:emoticon(':(')avjavascript:emoticon('<_<')ascjavascript:emoticon(':angry:')javascript:emoticon(':ph34r:')ript:emoticon(':lol:')jajavascript:emoticon(':P') ph34r.gif vajavascript:emoticon('B)')script:emoticon(':)')
Код
$say_hello=echo("Hello World");

Спустя 6 минут, 10 секунд (1.02.2009 - 20:29) Guest написал(а):
Код
$a=(int)3;$b=(int)5;
        function add(){
        global $a,$b;
        $c=$a+$b;
        echo $c;}


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.