zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden IE onchange Event Problematik

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 20.01.2011, 09:45
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 16.10.2009
Beiträge: 175
1chris befindet sich auf einem aufstrebenden Ast
Standard IE onchange Event Problematik

Hallo Forum,

ich habe ein Formular mit mehreren Inputs (hauptsächlich radio). Jedes input wird observt (prototype, ob ein event eintritt).

Ich achte auf das onchange event, eigentlich sollte das ja gefeuert werden, sobald sich der value ändert. Klappt im FF auch gut aber im IE tritt es erst ein, sobald der Benutzer außerhalb des input's klickt. Allerdings wird der Klick dann nur zum Event auslösen verwendet, wurde auf ein anderes input geklickt passiert nichts (bzw nur das event wird gefeuert...).

Was ist die Standardlösung für dieses Problem - sollte ja relativ häufig eintreten können und hoffentlich hat sich schon ein schlauer Codeschnipsel durchgesetzt?

Ich würde sonst für den IE automatisch ein 2. click Event feuern wollen, habe das aber noch nicht getestet und ist vermutlich auch mehr fusch als eine gute Lösung.

Was wäre eure Lösung?

Gruß,
Chris
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 20.01.2011, 13:08
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Was bdeutet den "observt" konkret?
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 20.01.2011, 14:20
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 16.10.2009
Beiträge: 175
1chris befindet sich auf einem aufstrebenden Ast
Standard

Element.observe (document.getElementById("foo"), "click", myFunction);

Erzeugt ein Listener der überwacht ob auf das Element mit der ID foo geklickt wird (on muss bei Prototype weggelassen werden), beim Klick wird myFunction ausgeführt.

Der Code funktioniert soweit auch problemlos, es hapert lediglich daran, dass der IE onchange erst beim Klick außerhalb des Elementes feuert und der Klick dann kein (wie es richtig wäre) neues onclickt feuert - dadurch geht die gewünschte Funktionalität leider nicht.
Mit Zitat antworten
  #4 (permalink)  
Alt 20.01.2011, 15:01
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Das macht jeder Browser. onchange feuert nicht beim unmittelbaren verändern, sondern erst wenn das Element den Focus verliert. In der Regel wird hierfür der onkeyup Event benutzt.
Mit Zitat antworten
  #5 (permalink)  
Alt 20.01.2011, 15:43
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 16.10.2009
Beiträge: 175
1chris befindet sich auf einem aufstrebenden Ast
Standard

Auch gut

Aber dann feuern die anderen Browser onchange sobald der User eine andere Checkbox anklickt UND das onclick für die andere Checkbox. Im IE wird der Klick auf die andere Checkbox aber nicht gefeuert und deshalb müsste der User 2x klicken - was natürlich doof ist.

Theoretisch wäre es ja möglich einen Timer zu starten sobald die Checkbox geklickt wurde, 10ms später onblur zu feuern (für den IE) und dann sollte ein weitere Klick ja normal klappen. (ob nun 10ms oder wieviel ist ja eigentlich ladde)

EDIT: Oder bietet sich ein anderes Event mehr an und ich denke nur umständlich?

Geändert von 1chris (20.01.2011 um 16:38 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 20.01.2011, 15:53
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

onblur vielleicht?
Mit Zitat antworten
  #7 (permalink)  
Alt 20.01.2011, 16:40
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 16.10.2009
Beiträge: 175
1chris befindet sich auf einem aufstrebenden Ast
Standard

onblur wird ja identisch mit onchange (bzw change unmittelbar nach blur) gefeuert.

Hat noch jemand Anders einen Lösungsvorschlag? Ich finde meine momentane Lösung (einen 2. onclick für den IE zu feuern) ehr schlecht.
Mit Zitat antworten
  #8 (permalink)  
Alt 21.01.2011, 09:09
Benutzer
neuer user
 
Registriert seit: 26.01.2007
Beiträge: 87
trixta befindet sich auf einem aufstrebenden Ast
Standard

in allen browsern für checkboxen und radiobuttons click verwenden und für die anderen form-elemente weiterhin change.
Mit Zitat antworten
  #9 (permalink)  
Alt 21.01.2011, 14:04
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Ach so, ich hatte das gar nicht richtig kapiert. Das Problem ist, dass der IE onchange in einer Checkbox erst onblur feuert?

Ich finde es im Prinzip auch unlogisch onchange bei einer Checkbox zu verwenden. onchange soll ja feuern, wenn sich der value eines Elements geändert hat, was bei der Checkbox an sich nicht der Fall ist.
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 21.01.2011, 19:05
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 16.10.2009
Beiträge: 175
1chris befindet sich auf einem aufstrebenden Ast
Standard

Habe das ganze nochmal umgemuddelt und letzlich ist nun ein switch case je nach input type rausgekommen.

Problem war halt, dass der IE onclickt verschluckt wenn der Klick auch ein onchange / blur ausgelöst hat.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Event dispatcher/listener passsy Javascript & Ajax 3 02.03.2011 16:56
CSS Event anstelle von JS Event nutzen 1chris Javascript & Ajax 6 08.09.2010 09:11
Javascript - onChange Event reagiert nicht auf "ss" und "ß" supercop89 Javascript & Ajax 3 14.06.2010 12:43
select abfragen, wenn kein onchange statt findet Cyro Javascript & Ajax 6 10.02.2008 20:28
onchange Problem webdanger Javascript & Ajax 3 11.07.2006 12:12


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:40 Uhr.