dagblog.
← Archiv

Internet Explorer, getElementById a formulářové prvky


Chtěl bych trochu doplnit Yuhůův chvályhodný příspěvek Alespoň kousek DOMu o používání 
standardizovaného přístupu pomocí

Document.getElementByID, které nabízí DOM pro 
 získání části dokumentu a odsouvá proprietární rozšíření Document.all Internet Exploreru do 
 věčných lovišť.

Problém, který bych rád popsal může nastat při použití Ineternet Exploreru, document.getElementById na
 dokument s formulářovými prvky. V podstatě se jedná o konflikt mezi atributem name a id, respektive pokud budeme mít
 v dokumentu formulářový prvek(například input) s hodnotou atributu name, která bude shodná s hodnotou atributu id 
 jakéhokoliv následujícího elementu, bude volání document.getElementById vracet formulářový prvek a nikoliv
 element s odpovídajícím atributem id.

Vše je možné si ověřit následujícím jednoduchém příkladu.

document.getElementById('foo').style.backgroundColor='red'

.
.
.
Formulářový prvek s atributem name="foo"
Element s atributem id="foo"

Chování Internet Exploreru je samozřejmě nekorektní a může přinést pěkně horké chvilky
 a opravdu špatné dohledávání chyby.

11.03.2004 Jak mě upozornil Honck(diskuse pod spotem), byl by dokument s uvedeným konfliktem id a name z hlediska HTML špatně zapsán viz . Anchors with the id attribute. Validátor ovšem takový dokument pokládá za validní.

Související články

Verze na Medium

Související články

Související epizody CZ Podcastu