Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обращение к radio-button с одинаковыми id
 
 автор: absolutic   (06.06.2008 в 15:27)   письмо автору
 
 

Подскажите пожалуйста, как быть в такой ситуации.
Движок, который я дорабатываю под проект, генерит в форме одинаковые id у радио баттонов. Но при этом заключает каждый радио баттон в новый слой с уникальным id.
Вот так:

<div class="form-item" id="edit-default-avatar-radios-default-2.JPG-wrapper">
<input type="radio" name="default_avatar_radios" id="defaults">
</div>

<div class="form-item" id="edit-default-avatar-radios-default-3.JPG-wrapper">
<input type="radio" name="default_avatar_radios" id="defaults">
</div>

Вмешательство в движок нежелательно.
А нужно решить такую задачу: при клике на другую кнопку формы нужно с последовательности радио баттонов снять отметку (checked), если она была установлена.
Если бы разные id были у инпутов, то тут все ясно

document.getElementById("ид радио баттона").checked = false;

Но как быть, когда они одинаковы?
Может при этом чем-то помочь уникальность ид слоев, которые радио баттоны заключены?

   
 
 автор: sim5   (06.06.2008 в 16:35)   письмо автору
 
   для: absolutic   (06.06.2008 в 15:27)
 

Не указывайте одинаковые имена объектам.

   
 
 автор: PAT   (06.06.2008 в 17:03)   письмо автору
 
   для: absolutic   (06.06.2008 в 15:27)
 

for (var obj = document.getElementsByName ('default_avatar_radios'), j = 0; j < obj.length; j++) obj [j].checked = false;


PS. На советы "не давать одинаковые имена" не обращайте внимание - это у господ/товарищей отрыжка от свойств давно помершего браузера Netscape. В современных браузерах сколько угодно объектов на странице могут иметь не только одинаковые NAME, но и одинаковые ID.

   
 
 автор: sim5   (06.06.2008 в 17:08)   письмо автору
 
   для: PAT   (06.06.2008 в 17:03)
 

Я пролетарий, но если речь идет о радиокнопках (я так понимаю автора), то для них одинаковые имена, это уже несколько другой механизм их работы, не так ли?

   
 
 автор: PAT   (06.06.2008 в 18:01)   письмо автору
 
   для: sim5   (06.06.2008 в 17:08)
 

Я, как и проф. Преображениский, "не люблю пролетариат"(с)

Существует распространенное заблуждение о том, что NAME должны быть уникальными, т.е. всякий тег , имеющий атрибут NAME, должен иметь собственное значение этого атрибута. За исключением, разумеется, атрибута NAME, определяющих группу чекбоксов или радиоинпутов.

Существует также миф, что значения ID должны вообще быть уникальными для каждого из тегов страницы.

Кроме того, многие полагают, что значения NAME и ID для одного тега должны совпадать.

Все эти ТРИ утверждения в современных браузерах (MSIE_5+, Opera_3+, FireFox_1+) - ЛОЖНЫ.
Программист, назначая NAME и ID тегам страницы, должен помнить только о двух вещах:
а) значения эти должны начинаться с буквы (но не с цифры, и не с символа подчеркивания).
б) чекбоксы и радиоинпуты, имеющие одинаковые NAME, объединяются в группы.
Всё остальное - как программисту будет удобно.

   
 
 автор: sim5   (06.06.2008 в 18:16)   письмо автору
 
   для: PAT   (06.06.2008 в 18:01)
 

Я понимаю о чем вы, но это совсем другое. А то что одинковое имя для радиокнопок - это группа, или группы груп, я это хорошо знаю.

   
 
 автор: AlexSol   (06.06.2008 в 19:24)   письмо автору
 
   для: PAT   (06.06.2008 в 18:01)
 

w3c авторитетом не пользуется?


http://www.w3.org/TR/REC-html40/struct/global.html#h-7.5.2

   
 
 автор: absolutic   (09.06.2008 в 13:06)   письмо автору
 
   для: PAT   (06.06.2008 в 17:03)
 

>
for (var obj = document.getElementsByName ('default_avatar_radios'), j = 0; j < obj.length; j++) obj [j].checked = false;


Спасибо, работает!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования