euge
Заглянувший
Joined: 12 Oct 2006
Posts: 3
Карма: 0 поощрить/наказать
|
Posted: Thu Feb 01, 2007 1:40 pm (написано за 14 минут 26 секунд)
Post subject: Ошибка в работе функции getElementById (IE, Opera)
|
|
Вчера наткнулся на такую вот неожиданность: если в форме есть два элемента и `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
|
|
collapse
Участник форума

Joined: 05 Sep 2006
Posts: 78
Карма: 0 поощрить/наказать
|
Posted: Thu Feb 01, 2007 2:06 pm (спустя 26 минут; написано за 9 секунд)
Post subject:
|
|
Да, действительно баг.
|
|
Zeroglif
Участник форума
Joined: 02 Jan 2006
Posts: 293
Карма: 61 поощрить/наказать
|
Posted: Thu Feb 01, 2007 2:36 pm (спустя 29 минут; написано за 24 секунды)
Post subject:
|
|
Не забывайте о ID-багах (forum.vingrad.ru/index.php?showtopic=120066&view=findpost&p=1018562)
|
|
Dark-Demon
Участник форума
Banned
Joined: 04 Feb 2007
Posts: 45
Карма: -3 поощрить/наказать
Location: spb
|
Posted: Sun Feb 04, 2007 11:42 am (спустя 2 дня 21 час 6 минут; написано за 1 минуту 46 секунд)
Post subject:
|
|
ИЕ и вслед за ним Опера не различают id и name. думаю Опера в режиме соответствия стандартам должна различать. validator.w3.org тебе в помощь. с ИЕ - аналогично, но начиная с какой версии - не знаю.
|
|