Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Возможно ли javascript'ом отметить всё radio-кнопки на странице? (https://javascript.ru/forum/events/4246-vozmozhno-li-javascript%27om-otmetit-vsjo-radio-knopki-na-stranice.html)

javascript_pupil 05.07.2009 18:03

Возможно ли javascript'ом отметить всё radio-кнопки на странице?
 
На странице есть произвольное количество групп радио-кнопок. Каждая группа состоит из 3-х кнопок. Вот пример кода из 4-х групп:
<input type="radio" name="code[1]" value="0">
<input type="radio" name="code[1]" value="-1" checked>
<input type="radio" name="code[1]" value="1">

<input type="radio" name="code[2]" value="0">
<input type="radio" name="code[2]" value="-1" checked>
<input type="radio" name="code[2]" value="1">

<input type="radio" name="code[3]" value="0">
<input type="radio" name="code[3]" value="-1" checked>
<input type="radio" name="code[3]" value="1">

<input type="radio" name="code[4]" value="0">
<input type="radio" name="code[4]" value="-1" checked>
<input type="radio" name="code[4]" value="1">

По умолчанию выбраны кнопки со значением -1. Можно ли с помощью javascript'а изменить значения checked у всех? Чтобы оно стало, скажем у всех кнопок с value 0 или 1?

Riim 05.07.2009 20:38

Цитата:

Сообщение от javascript_pupil
Можно ли с помощью javascript'а изменить значения checked у всех?

Можно.
Найти нужные элементы можно методом getElementsByTagName
Полученную коллекцию перебираете в цикле, заменяя свойство checked в зависимости от свойства value.

javascript_pupil 05.07.2009 20:49

Мне не понятно, как их именовать? У них же имена все разные. В учебнике ничего по этому поводу не сказано. Какое имя в функции использовать для "code[цифра]"? Я вообще нигде ни одного примера не нашёл, хоть и говорят, что не надо изобретать велосипед и всё давным давно написано до нас.

Riim 05.07.2009 20:52

Нормально вроде проименовано.

HelpeR 05.07.2009 22:06

javascript_pupil,
обрати внимание, что для каждого блока кнопок даны одинаковые название. Это сделано для того, что бы в каждом блоке можно было выбрать только одну кнопку. А если ты например в первом блоке сделаешь так
<input type="radio" name="code[1]" value="0">
<input type="radio" name="code[1]" value="-1" checked>
<input type="radio" name="code[12]" value="1">

то в этом блоке будет возможность выбрать уже две кнопки. Теперь понял. Это например делается для того что бы выбрать пол при регистрации, т.к. человек не может иметь два пола одновременно ))
<input type='radio' name='sex' value='1'>Мужской
<input type='radio' name='sex' value='2'>Женский

javascript_pupil 05.07.2009 22:15

Блин, да знаю я для чего названия даны, я ж сам их давал. Просто я на Perl пишу, а с javascript'ом не знаком. И без примера функции вряд ли разберусь. Всё равно не догоняю я мысль, а примеров не нашёл.

x-yuri 06.07.2009 19:34

первый вопрос, который, имхо, стоит задать: зачем изменять value? Я бы для value использовал натуральные числа: 1, 2, 3
upd: невнимательно прочитал

`p r o x y 06.07.2009 23:20

пример:

window.onload = function(){
	var aRadio = document.getElementsByTagName('input');
	for (var i=0; i < aRadio.length; i++){
		if (aRadio[i].type != 'radio') continue;
		//if (aRadio[i].value == 0) aRadio[i].checked = true;
		//if (aRadio[i].value == -1) aRadio[i].checked = true;
		if (aRadio[i].value == 1) aRadio[i].checked = true;
	}
}


Часовой пояс GMT +3, время: 19:40.