Hallo,
Eben: <option onclick="alert('abc')"> geht im IE nicht. _Nur_ onchange.
Und wie kriegt man es dann hin?
indem man eine sinnvolle Javascript-Anweisung notiert.
Bis jetzt funktioniert es mit
onChange
leider auch nach verschiedenen Anläufen nicht! NuronClick
geht, aber eben nicht im IE.
Gewöhne dir an, die Namen der Eventhandler wie onclick, onchange usw. durchgehend klein zu schreiben. Sowohl Javascript als auch XHTML sind case-sensitive; dass gerade HTML *nicht* auf Groß/Kleinschreibung achtet, sollte meiner Ansicht nach nicht heißen, dass man hier Narrenfreiheit hat. Ich halte es für sinnvoll, auch hier die korrekte Schreibweise zu verwenden - schon aus Gewohnheit.
<select size=1 name="Auswahl" onChange="this.options[this.options.selectedIndex].value;">
Und was tut dieser Eventhandler? Sobald die Auswahl verändert wurde, liest er den Index des ausgewählten Eintrags, greift damit auf die Liste der options zu, liest aus dem indizierten Eintrag den Wert (value) ... und tut nichts damit.
<option value="Funktion_1();">Auswahl_1</option>
<option value="Funktion_2();">Auswahl_2</option>
<option value="Funktion_3();">Auswahl_3</option>
Ich halte es übrigens nicht für schlau, hier gleich Funktionsnamen zu notieren. Hier sollten nur die Werte stehen, die beim Absenden des Formulars an das serverseitige Script übergeben werden.
Du machst aber anscheinend die ganze Auswertung des Formulars mit Javascript (was ist mit [Besuchern, die kein Javascript ausführen](http://www.woodshed.de/publikationen/dialog-robot.html)?) Dann wäre es IMHO viel sinnvoller, im onchange-Eventhandler nur eine parameterlose Funktion aufzurufen. Innerhalb der Funktion kannst du mit this auf das select-Element sowie seine untergeordneten option-Elemente und deren valus zugreifen und damit tun, was du eigentlich vorhast. Dein jetziger Ansatz ist jedenfalls ... hmm, nett ausgedrückt: ungünstig.
So long,
Martin
--
Wenn du beim Kochen etwas heißes Wasser übrig hast, friere es ein.
Heißes Wasser kann man immer gebrauchen.