Autor Zpráva
Měsíček
Profil
Věděli jste? :-)
<input name="js" value="Ahoj">

<script type="text/javascript">
  var element = document.getElementById("js");
    alert(element.value); // "Ahoj"
</script>
na tuto anomálii upozornil uživatel Maaartin na fóru Builder.
joe
Profil
Věděl jsem to :) A co když napíšeš tohle
<input name="js" value="Ahoj">
.
.
<input id="js" value="Nazdar">

<script type="text/javascript">
  var element = document.getElementById("js");
    alert(element.value); // "Ahoj"
</script>
Měsíček
Profil
Hm, tak teď koukám, že Microsoftí programátoři to asi udělali naschvál, jen mi uniká smysl.
Měsíček
Profil
No to mě taky udivuje :), i tak dá přednost name a nebo ještě přesněji první položce, IE asi chce trochu vyčnívat :)
Leo
Profil
Ono taky pouzivat stejne name a id pro dva ruzne elementy je blbost, v html specifikaci se pise:

Note that this attribute shares the same name space as the id attribute.

Leo
Chamurappi
Profil
Reaguji na Měsíčka:
Věděli. A před necelým rokem jsem se dozvěděl, že bere name i u <meta> elementů, což je obzvláště pikantní jev.

Reaguji na Lea:
To je zřejmě důvod, proč MS implementoval document.all a posléze i document.getElementById tak, jak si nyní všiml Měsíček.
I když konsorcium mělo tou poznámkou na mysli jen jména kotev.
peta
Profil
Měsíček
Tvuj kod nahore by podle logiky nemel fungovat a pokud fungoval, muzes to povazovat za bonus od MS.
Pokud by byla anketa, jestli by to melo fungovat nebo ne, tak bych hlasoval za NE.

MS to ted resi tak, ze ma NAME a ID vestavene v hlavni vrstve a staci ti napsat
alert(js.value);
Coz osobne povazuji za dalsi moznou komplikaci pri programovani, protoze ted si musis dusledne hlidat ID, NAME, jmena js funkci a js promennych. Jedna chybka, jedno stejne jmeno a pak muzes docela komplikovane hledat chybku.
Na druhou stranu to usnadnuje adresovani, nemusis psat document['js'] nebo window.document['js'] a nebo window.document.formular['js'] .
Mohli to vyresit funkci pro vyhledani objektu:
find_object('js') jednotnou pro vsechny pozdejsi verze fungujici uplne stejne. Sice se tim ztraci zpetna kompatibilita, ale co uz.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0