cyro: select abfragen, wenn kein onchange statt findet

Hallo Zusammen,

ich habe in meiner Seitenansicht einen Namen der beim anklicken per JS durch eine DropDown Box ersetzt wird. Das DropDown Feld zeigt eine Auswahl an alternativen, fest vorgegebenen Namen die man auswählen kann. Wählt man einen anderen Namen, wird dieser per Ajax an den Server übermittelt und gespeichert. Bei einer positiven Rückmeldung ersetze ich die DropDown Box wieder mit einem normalen Text. Möchte man den Wert erneut wechseln, klickt man ihn einfach an und das ganze geht wieder von vorne los.

Realisiert hab ich das Ganze in zwei Schritten. Der Text reagiert auf ein onclick Event und tauscht diesen gegen eine Select Box aus. Die Select Box reagiert auf onchange(). Wenn sich der Wert ändert, wird durch das onchange der Ajax Aufruf gestartet. Der AjaxResponse ersetzt die Select Box mit dem neu gewählten Text.

Bei der ganzen Sache gefällt mir aber nicht, dass man zwingend den Wert ändern muss, damit die Select Box wieder mit einem Text ersetzt wird. Mit onclick() wäre das ganze kein Problem, da das Event auch aufgerufen wird, wenn der bereits selektierte Wert erneut gewählt wird. Aber onlick() in den options funktioniert im IE nicht.

Hat jemand ne Idee, wie ich das Abfragen kann?

cu cyro

PS: Habe auch schon probiert das select mit onclick() abzufragen. Im FF funktioniert das auch. Im IE wird der Event aber vor der eigentlichen Auswahl ausgelöst. D.h. wenn ich die Auswahl meiner select Box abfrage, bekomme ich immer den selben Rückgabewert.

  1. Hi,

    Bei der ganzen Sache gefällt mir aber nicht, dass man zwingend den Wert ändern muss, damit die Select Box wieder mit einem Text ersetzt wird. Mit onclick() wäre das ganze kein Problem, da das Event auch aufgerufen wird, wenn der bereits selektierte Wert erneut gewählt wird. Aber onlick() in den options funktioniert im IE nicht.

    Hat jemand ne Idee, wie ich das Abfragen kann?

    Da bleibt dir vermutlich nur onblur, um darauf zu reagieren, dass das Selectfeld den Fokus wieder verliert.

    MfG ChrisB