Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Ошибка в работе функции getElementById (IE, Opera) (euge)
Author Message
euge
Заглянувший



Joined: 12 Oct 2006
Posts: 3
Карма: 0
   поощрить/наказать


PostPosted: Thu Feb 01, 2007 1:40 pm (написано за 14 минут 26 секунд)
   Post subject: Ошибка в работе функции getElementById (IE, Opera)
Reply with quote

Вчера наткнулся на такую вот неожиданность:
 если в форме есть два элемента и `name` первого совпадает с `ID` второго,
 то функция getElementById() в Мозилле возвращает второй элемент, а в ИЕ и Опере (у меня версия 9,02) возвращает первый
---------------------
Пример:
    <input type="checkbox" name="selectMode" id="selectMode" onclick="var btn = document.getElementById('Province'); btn.disabled = !btn.disabled;">Disable province
    <p>
    <input type='button' name="Province" id="State" value="select State">
    <input type='button' name="Region" id="Province" value="select Province">
---------------------
При нажатии на чекбокс Мозилла деактивирует кнопку `select Province` - функция getElementById() сработала правильно,
а в ИЕ и Опере деактивируется кнопка `select State`, т.е. функция выбрала не по `ID`, а по `name`.

P.S. не надо упрекать, что такой код изначально неправильный и глупо давать имя `Region`, а `ID` - `Province`. Я привел упрощенный пример.
В реальном случае оба элемента имели имя `Province`, но т.к. к ошибке это не имело никакого отношения, то я изменил код для наглядности.

Last edited by euge on Thu Feb 01, 2007 4:37 pm; edited 1 time in total
Back to top
View user's profile Send private message
collapse
Участник форума



Joined: 05 Sep 2006
Posts: 78
Карма: 0
   поощрить/наказать


PostPosted: Thu Feb 01, 2007 2:06 pm (спустя 26 минут; написано за 9 секунд)
   Post subject:
Reply with quote

Да, действительно баг.
Back to top
View user's profile Send private message
Zeroglif
Участник форума



Joined: 02 Jan 2006
Posts: 293
Карма: 61
   поощрить/наказать


PostPosted: Thu Feb 01, 2007 2:36 pm (спустя 29 минут; написано за 24 секунды)
   Post subject:
Reply with quote

Не забывайте о ID-багах (forum.vingrad.ru/index.php?showtopic=120066&view=findpost&p=1018562)
Back to top
View user's profile Send private message
Dark-Demon
Участник форума
Banned


Joined: 04 Feb 2007
Posts: 45
Карма: -3
   поощрить/наказать

Location: spb

PostPosted: Sun Feb 04, 2007 11:42 am (спустя 2 дня 21 час 6 минут; написано за 1 минуту 46 секунд)
   Post subject:
Reply with quote

ИЕ и вслед за ним Опера не различают id и name. думаю Опера в режиме соответствия стандартам должна различать. validator.w3.org тебе в помощь. с ИЕ - аналогично, но начиная с какой версии - не знаю.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML