Eingabefelder mit gleichem Namen?
Sandburg
- html
Moin
ich habe in einem Formular einige Eingabe felder und möchte, dass die als Array an PHP übergeben werden. Kann ich deshalb allen den gleichen Namen geben, dalos zb. 'diefelder[]' oder haben Browser Probleme damit?
Bye the Sandburg
Moin
ich habe in einem Formular einige Eingabe felder und möchte, dass die als Array an PHP übergeben werden. Kann ich deshalb allen den gleichen Namen geben, dalos zb. 'diefelder[]' oder haben Browser Probleme damit?
Bye the Sandburg
hmm Ich habe in einem dynamisch erzeugtem HTML File etliche DIV Tags mit der gleichen ID.
Die Browser nummerieren diese automatisch in einem Array durch, wie normale Tags auch.
Ein Zugriff ist dann z.B. mit idname[5] möglich.
Ich nehme mal an das eine Unterscheidung bei Eingabefeldern von den Browsern genauso gehandhabt wird.
Grüsse Mho
Hi,
hmm Ich habe in einem dynamisch erzeugtem HTML File etliche DIV Tags mit der gleichen ID.
Oh je.
Die Browser nummerieren diese automatisch in einem Array durch, wie normale Tags auch.
Also
<div id="MassenID">0</div>
<div id="MassenID">1</div>
<div id="MassenID">2</div>
?
Ein Zugriff ist dann z.B. mit idname[5] möglich.
So a la alert(document.MassenID[1].innerHTML); gibt dann "1" aus? Und *das* soll in allen Browsern (na ja zumindest im IE, Mozilla, Opera und Konqueror) funktionieren? =:-o
Gruß, Cybaer
Also
<div id="MassenID">0</div>
<div id="MassenID">1</div>
<div id="MassenID">2</div>
?So a la alert(document.MassenID[1].innerHTML); gibt dann "1" aus? Und *das* soll in allen Browsern (na ja zumindest im IE, Mozilla, Opera und Konqueror) funktionieren? =:-o
Sagen wir mal ich habe es mit Mozilla un Internetexplorer getestet
IE
document.all.MassenID[i].style.display
DOM
document.getElementsByName("MassenID")[i].style.display
COOL was?
Die Browser können mehr als man denkt
grüsse Mho
Hi,
Sagen wir mal ich habe es mit Mozilla un Internetexplorer getestet
IE
Dann fehlen noch 2 und es sind die wichtigsten aktuellen Browser abgedeckt - nicht natürlich zukünftige. :-)
document.all.MassenID[i].style.display
DOM
document.getElementsByName("MassenID")[i].style.display
Und dir fällt da nichts auf? :-o
COOL was?
Ja, ist häufig die jugendliche Bezeichnung für "leichtsinnig" ... :)
Mit ca. 10 Jahren Web-Design auf dem Buckel (davon ca. 9 mit JavaScript), bin ich mit "cool" etwas vorsichtig. ;-)
Die Browser können mehr als man denkt
Nein, manche Brower sind vielleicht fehler- (und/oder standard-)toleranter als andere. Und eine browserübergreifende Zugriffsmöglichkeit auf diese üble Vergewaltigung des ID-Attributes sehe ich gerade auch nicht. =:-o
Und da es dafür ohnehin keinen Anwendungszweck gibt (es gibt ja mehrere legale und auch halb-legale Alternativen, ohne HTML zu vergewaltigen), sollte man es auch besser getrost vergessen ... 8->
Gruß, Cybaer
leichtsinnig?
naja
aber das jugentlich nehme ich mal als kompliment
Das macht insgesammt aber schon Sinn und ist wohl auch keine Fehlertoleranz.
Ich nehme mal an das alle Elemente als Array dargestellt werden.
Das wird mit den Tags auch gerne verwendet.
Den Schritt das auch ID Namen als Array verwaltet werden ist nicht so abwegig, da der Zugriff sicherlich äquivalent implementiert wurde.
Einen Anwendungsfall hatte ich durchaus
xsl Umwandlung einer XML bei der Blöcke erzeugt werden deren sichtbarkeit vom Beutzer an und ausgeschaltet werden kann.
Die Id habe ich immer gleich erzeugt und konnte über das Array trotzdem auf einen Block zugreifen. Ohne über XSL die Blöcke in der ID durchnummerieren zu müssen. Das hätte ich sonst in den Eventfunktionen auch machen müssen, was recht unübersichtlich ist.
So merke ich mir einfach eine Nummer im Javascript und habe in den Eventfunktionen die Variable stehen.
Beispiel:
<img id="name" src="Bild.jpg" onclick="machwas();" onMouseover="funktion1('name[count]');" onMouseout="funktion2('name[count]');"
Und für Netscape werde ich das auch noch austesten....
Hatte noch keine Zeit.
Grüsse Mho
Hi,
leichtsinnig?
naja
Kann funktionieren, kann auch nicht. Also ich finde das leichtsinnig. =:-)
Na ja, war ja ohnehin nix mit "browserübergreifend" ...
aber das jugentlich nehme ich mal als kompliment
:-)) OK, Altersdemenz! ;->
Das macht insgesammt aber schon Sinn und ist wohl auch keine Fehlertoleranz.
Stimmt, eher "Fehlverhalten". Denn da wird das Verhalten des alten NAME-Attributs (W3C: nicht eindeutig -> getElementsByName) mit dem des (auch) als "Ersatz" vorgesehenen neuen ID-("Universal-")Attributs (W3C: eindeutig -> getElementByName - man beachte auch Einzahl/Mehrzahl) durcheinander gewürfelt. Meiner Erfahrung nach gibt es für dieses Durcheinanderwürfeln aber keine Browserübergreifend einheitliche Vorgehensweise (selbst Elementübergreifend klappt es nicht) ...
Einen Anwendungsfall hatte ich durchaus
Ich schrieb von *anderen* Lösungswegen ohne HTML zu vergewaltigen! =8-> Daß es Anwendungsfälle und somit Bedarf für eine Lösung gibt, ist schon klar. 8-)
Du kannst z.B. nur auf Beginn der ID abfragen (id="name1", id="name2") oder in XML ein eigenes Atribut GID (Group-ID) definieren (welches von HTML-Browsern ignoriert, von deren XML-fähigen JS-Engines aber bearbeitet werden kann).
Beide Varianten findest Du z.B. in http://Coding.vampirehost.de/Toggle, wo es eben genau um das Thema geht, wie man auf einen Schlag mehrere Elemente zugleich verarbeiten kann (jedenfalls was ihre Darstellung angeht).
Gruß, Cybaer
Gut gut
Ich habe mich mal durch die für diesen Fall relewanten Quellen gelesen
W3c html 4.01 Spezifikation
W3c xhtml spezifikation
w3c dtd für xhtml im strict modus
w3c DOM2 Spezifikation
und ich kann nun sicher behaupten:
Du hast recht.
html 4.01 gibt für ID Namen eine Eindeutigkeit vor
dom2 sagt folgendes:
getElementById introduced in DOM Level 2
Returns the Element whose ID is given by elementId. If no such element exists, returns null. Behavior is not defined if more than one element has this ID.
Allerdings kann man noch erwähnen das die ATTLIST Einträge der DTD für XHTML strict das von ihrem Aufbau her nicht verbieten würden
Aus XML Sicht wäre das also zulässig.
Aus Browsersicht nicht.
Immerhin funktioniert es und warum nicht ab und an etwas am script ändern? ... Solange das kein Kundenauftrag war.
Wieder etwas dazu gelernt.
grüsse Mho
Hi,
Aus XML Sicht wäre das also zulässig.
Aus Browsersicht nicht.
Immerhin funktioniert es und warum nicht ab und an etwas am script ändern?
Mindestens der Opera wird die Grätsche machen ... 8-)
... Solange das kein Kundenauftrag war.
Und wenn, wäre es immer noch deutlich besser, als was sonst mitunter so abgeliefert wird. >;->
Gruß, Cybaer