onClick oder onChange?

Gerade bin ich über ein JScript-Problem gestolpert, bei dem ich ein wenig nachdenken musste (zur Abwechslung *g*).
Die Ausgangssituation: ich hatte zwei Radio-Buttons, die typischerweise zur selben Gruppe gehören, weshalb nur einer von beiden Buttons zur selben Zeit ausgewählt sein kann. Ich wollte für den Fall, dass einer der Buttons angeklickt wird, weitere Formularfelder einblenden (damit der Benutzer nicht von vornherein von der Menge der Eingabefelder überwältigt ist…oderso). Intuitiv habe ich daher gleich zum Event onChange gegriffen, schliesslich sollte das Script nur aktiv werden, sobald sich der Zustand ändert. Das schien auf den ersten Blick auch wunderbar zu funktionieren. Ich teste ja parallel alles sofort auf dem Firefox. Als ich aber kurz im IE6 geschaut habe, ob das Layout noch passt musste ich feststellen, dass das überhaupt nicht funktioniert. Lustigerweise war beim MS-Browser die Funktionalität meines kleinen Scriptes sogar genau umgekehrt als vorgesehen – und das obwohl ich klar nach dem checked-Zustand abgefragt hatte.
Jedenfalls musste ich dann auf onClick ausweichen, was ich ja eigentlich nicht nehmen wollte, weil man nicht unbedingt das Formular mit der Maus bedienen muss. Ausserdem hatte ich noch zwei Labels zu den jeweiligen Radio-Buttons definiert, die natürlich auch anklickbar wären, wofür ich aber zusätzlich auch deren onClick-Ereignisse hätte abfangen müssen…dachte ich zumindest.

Es ist aber ganz anders als ich es mir gedacht hatte: onChange funktionierte für meine zwecke überhaupt nicht unter dem IE6, wogegen onClick genau die komplette Funktionalität lieferte, die ich wollte: selbst wenn ein Radio-Button per Space-Taste ausgewählt wird, wird onClick ausgelöst. Genauso verhält es sich mit den Labels, die mit den jeweiligen Radio-Buttons direkt verbunden sind und daher auch das onClick-Ereignis des zugehörigen Buttons auslösen, also nicht nur den blossen Zustand des Buttons mit beeinflussen.

Das Problem ist jetzt gelöst, aber ich bin gerade etwas unschlüssig, ob ich die Logik hinterfragen muss, mit der ich an die Auswahl des Events herangegangen bin, oder ob der IE6 an dieser Stelle einfach falsch reagiert…

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>