Event manuell aufrufen/werfen

redX

Erfahrenes Mitglied
Hallo!

Grundlage:
Ich habe 3 dropdowns. Das zweite ist abhängig vom ersten, das dritte vom zweiten. Wenn ich im Dropdown 1 was ändere, dann passt es den Inahlt vo von Dropdown 2 an. Wenn ich im zweiten was ändere, werden die Elemente des dritten Feldes angepasst (u.s.w.).

Feld 1 und Feld 2 haben einen Event Handler welcher auf den "change" Event reagiert. (Umgesetzt mit Prototype. Dies funktioniert auch mal soweit)

Javascript:
 Event.observe($("tx_vomhof_products-rubric"), "change", function(s) {
    //My Code
 });

Das Problem:
Wenn ich den Inhalt des Felds 1 ändere, wird, wie oben erklärt, der Inhalt von Feld 2 verändert. Dies funtioniert. Feld 2 hat aber auch einen change Event listener. Diese wird jedoch nicht aufgerufen. Denn wenn der Inhalt von Feld 2 ändert soll auch Feld 3 ändern.

Gibt es eine möglichkeit, wie ich den Event manuell anstossen kann?

MFG
X
 
Habe folgendes mittlerweile auf die Reihe bekommen (bzw im Internet gefunen):

Javascript:
				function fireEvent (eventType, element)	{
					if (document.createEvent) {
						var evt = document.createEvent("Events");
						evt.initEvent(eventType, true, true);
						element.dispatchEvent(evt);
					} else if (document.createEventObject) {
						var evt = document.createEventObject();c
						element.fireEvent("on" + eventType, evt);
					}

Mit dem Firefox flutscht das eigentlich auch ganz gut. Nur die IE Zicke stellt sich wiedermal quer. Fehlermeldung: "Invalid Argument".

Ich ruffe die oben aufgelistete Funktion folgendermassen auf:

Javascript:
					fireEvent("change", childElement);

Hat jemand eine Ahnung wie ich das für den IE fixen kann?

MFG
X
 
Mein Fehler. Der Code oben ist völlig ok. Nur element hatte nicht den korrekten Wert. Im element sollte eigentlich das select Element stehen. Hatte weiter oben im Code den Fehler, das ich dem element eine optGroup zugewiesen hatte. Anscheinend funktioniert es im FF, dass man auf dem optGroup einen onChange event wirft. Der IE hats nicht gerafft. Auf jedenfall mein Fehler. Entschuldige mich hier bei MS und dem IE ^^

MFG
X
 

Neue Beiträge

Zurück