Verhalten von "onchange" im IE und im FF
Jens Mayer
- javascript
Hallöle,
kann mir jemand sagen, warum sich der onchange-Handler im IE anders verhält, als der im FF? Wenn ich z.B. folgenden Code hab:
<input type="radio" name="Zahlmethode" value="Mastercard" onchange="alert('Mastercard')"> Mastercard<br>
<input type="radio" name="Zahlmethode" value="Visa" onchange="alert('Visa')"> Visa<br>
<input type="radio" name="Zahlmethode" value="AmericanExpress" onchange="alert('AmericanExpress')"> American Express
...dann gibt FF bei Klick auf Visa auch Visa aus. Klicke ich im IE auf Visa, passiert nichts, erst wenn ich irgendwo anders hinklicke (leere Stelle oder z.B. Mastercard) wird Visa ausgegeben. So, welches verhalten ist nun richtig(er). Gewollt ist von mir das erste. Das könnte ich auch mit onclick hinbekommen. Allerdings wär mir für meine spezielle Anwendung onchange lieber. Kann ich ein gleiches Verhalten mit onchange hinbekommen oder muss ich zwangsläufig auf onclick ausweichen?
Danke und Grüße,
Jens
Hallo Jens,
onchange wird eher bei pulldowns verwendet.
Ich würde mal onclick und onfokus ausprobieren.
Liebe Grüße,
Bernd
Hallo ihr zwei,
danke für eure Antworten. Also prinzipiell wäre ich ja mit onclick zufrieden. Der einzige Nachteil, den es in meinem Falle hätte ist die Tatsache, dass ein Event auch gefeuert hat, wenn sich die Auswahl NICHT geändert hat. Schön wäre es, wenn dem nicht so wäre - also wieder onchange (onfokus geht da nicht). Was haltet ihr von der Idee onclick zu nehmen und das Verhalten von onchange dann programmatisch nachzubilden?
Grüße,
Jens
Hi,
...dann gibt FF bei Klick auf Visa auch Visa aus. Klicke ich im IE auf Visa, passiert nichts, erst wenn ich irgendwo anders hinklicke (leere Stelle oder z.B. Mastercard) wird Visa ausgegeben. So, welches verhalten ist nun richtig(er).
man höre und staune: Der IE verhält sich korrekt, Firefox nicht. In HTML 4 ist definiert, onchange feuere, wenn "a control loses the input focus and its value has been modified since gaining focus". Bei Firefox feuert das Event bereits, obwohl der "input focus" noch besteht.
Kann ich ein gleiches Verhalten mit onchange hinbekommen oder muss ich zwangsläufig auf onclick ausweichen?
Ob Du onclick verwenden musst sei mal dahin gestellt, aber onchange ist hier nicht der Event-Handler Deines Vertrauens.
Cheatah