getElementByMirWurscht

by Vash 10. Oktober 2008 11:29

Da benutzt man seit Jahren Javascript und HTML und immer wieder erstaunt der Internet Explorer mit Bugs die eigentlich einerseits schon längst behoben sein könnten oder andererseits nie auftreten dürfte. Warum Microsoft seine zahlreichen Bugs in mehreren seiner Browsergenerationen zuläßt ist nur schwer begreiflich. Wahrscheinlich um die "Kompatibilität" zu schlecht geschriebenen HTML und Javascript Code zu gewährleisten.

Was ein anderer Blog bereits beschrieben hat, ist mir gerade selbst wiederfahren. Benutzt man in Formularen die Attribute "id" und "name", dann sollte man veremiden Element A einen gleichlautenden Namen zu geben wie Element B als ID besitzt. Einfach darum weil getElementById im IE eigentlich nicht nur das Attribut "id" berücksichtigt sondern auch mal im Namen nachguckt. Mit anderen Worten, welcher Wert beim Absenden eines solchen Formulares beim Server ankommt ist nicht derjenige mit der richtigen ID sondern derjenige der Wert des Elements das zuerst gefunden wird, auf die der Parameter passt. Da dies in anderen Browsern richtig funktioniert, darf man diese Vermischung der Namen und IDs nicht eingehen. Da man sonst einfach die falschen Werte am Server erhält.

Eigentlich, könnte der schlaue Theoretiker jetzt antworten, ist es ja auch eine schlechte Namensgebung wenn ein Element einen Namen hat das ein anderes auch als ID benutzt, unabhängig davon was der Browser damit macht. Eigentlich hat er recht. Nur hat hier die Praxis zugeschlagen, bedingt durch die Situation dass es in HTML kein "readonly" Selectfeld gibt. Benutzt man aber ein "Hiddenfeld" und ein "Disabled Selectfeld", kann man ein readonly Selectfeld simulieren. Um den Wert des Selectsfeldes zu übergeben gibt man dem Hiddenfeld den Namen des Selectfelds und der im Hintergrund arbeitende Code erkennt keinen Unterschied. Bleibt die ID des Selectfelds jedoch unverändert, dann arbeitet der Javascriptcode der das Selectfeld bedient auch unverändert. Das wäre eigentlich ein Vorteil, für den man eine "schlechte Namensgebung" in Kauf nehmen kann.

Tags: ,

Winzigweich

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen


Die von mir erstellten Inhalte des Blogs unterliegen, sofern nicht anders vermerkt, der Creative Commons-Lizenz. Eine Ausnahme bilden alle verlinkten Medien die nicht durch mich erstellt wurden und ggf. nur verlinkt wurden. Falls Sie nicht sicher sind ob Sie das Bild nutzen dürfen, erreichen Sie mich über das Kontaktformular.

Creative Commons License

Sofern Sie Ihre Persönlichkeitsrechte oder Urheberrechte durch eines der verlinkten Medien verletzt fühlen, setzen Sie sich bitte mit mir in Verbindung.

Falls Sie eines der Medien in besserer Qualität benötigten, schreiben Sie mich bitte direkt an. Sie möchten noch mehr über mich wissen? Dann besuchen Sie die Homepage von Alexander Schwoch.