Eventhandler onchange beim Ändern von selected
Kristin
- javascript
Hi
Warum wird der Event onchange nicht aufgerufen, wenn ich innerhalb einer JavaScript-Funktion den selected Status einer Dropdown-Liste ändere?
Beispiel:
[...]
document.form.test[2].selected = true;
[...]
<select name="test" onchange="test(this);">
<option value="Text">Text</option>
[...]
</select>
was muss ich ändern, damit die Funktion test() aufgerufen wird?
Kristin
Hi,
Warum wird der Event onchange nicht aufgerufen, wenn ich innerhalb einer JavaScript-Funktion den selected Status einer Dropdown-Liste ändere?
Es ist halt so.
was muss ich ändern, damit die Funktion test() aufgerufen wird?
Rufe sie einfach im Script auf, nachdem du die Option selektierst.
MfG ChrisB
Hi
»» Warum wird der Event onchange nicht aufgerufen, wenn ich innerhalb einer JavaScript-Funktion den selected Status einer Dropdown-Liste ändere?
Es ist halt so.
»» was muss ich ändern, damit die Funktion test() aufgerufen wird?
Rufe sie einfach im Script auf, nachdem du die Option selektierst.
wie muss ich das machen, wenn ich mehrere Formulare habe, die annähernd die selben Elemente haben, aber bei onchange andere Parameter übergeben und andere Funktionen aufgerufen werden?
Kristin
Hi,
Rufe sie einfach im Script auf, nachdem du die Option selektierst.
wie muss ich das machen, wenn ich mehrere Formulare habe, die annähernd die selben Elemente haben, aber bei onchange andere Parameter übergeben und andere Funktionen aufgerufen werden?
Du hast eine Code-Stelle gezeigt, an der du die selected-Eigenschaft eines Elements in einem bestimmten Formular änderst.
Also wird es dir doch wohl möglich sein, in der nächsten Zeile auch die Referenz auf eben dieses Formularelement an deine Funktion zu übergeben ...?
MfG ChrisB
Hi!
»» > Rufe sie einfach im Script auf, nachdem du die Option selektierst.
»»
»» wie muss ich das machen, wenn ich mehrere Formulare habe, die annähernd die selben Elemente haben, aber bei onchange andere Parameter übergeben und andere Funktionen aufgerufen werden?Du hast eine Code-Stelle gezeigt, an der du die selected-Eigenschaft eines Elements in einem bestimmten Formular änderst.
Also wird es dir doch wohl möglich sein, in der nächsten Zeile auch die Referenz auf eben dieses Formularelement an deine Funktion zu übergeben ...?
das mit der Referenz ist kein Problem.
Der Code vom Ursprungspost war ziemlich gekürzt um die Frage allgemein zu halten.
Das onchange sieht z.B. wie folgt aus
im Formular 1
onchange="test1(this);test2(this, 'irgendetwas')"
im Formular 2
onchange="test1(this);test2(this, 'irgendetwas anders')"
im Formular 3
onchange="test1(this);test2(this, 'wieder etwas anders')"
die Funktion test1(Referenz) aufzurufen ist kein Problem
test1(obj.form.test)
obj = übergebene Referenz
test = Name der Dropdownliste
Wie rufe ich aber die Funktion test2(Referenz, Text) auf? Bzw. wie komme ich an den Text?
Kristin
Der Code vom Ursprungspost war ziemlich gekürzt um die Frage allgemein zu halten.
Das onchange sieht z.B. wie folgt aus
im Formular 1
onchange="test1(this);test2(this, 'irgendetwas')"im Formular 2
onchange="test1(this);test2(this, 'irgendetwas anders')"im Formular 3
onchange="test1(this);test2(this, 'wieder etwas anders')"die Funktion test1(Referenz) aufzurufen ist kein Problem
test1(obj.form.test)
obj = übergebene Referenz
test = Name der DropdownlisteWie rufe ich aber die Funktion test2(Referenz, Text) auf? Bzw. wie komme ich an den Text?
Was heißt wie rufe ich die Funktion auf? Sie wird aufgerufen, wenn du im select Element etwas änderst.
An welchen Text?
Struppi.
n'abend,
Was heißt wie rufe ich die Funktion auf? Sie wird aufgerufen, wenn du im select Element etwas änderst.
Ich befürchte Kirstin weiß nicht, dass
<input onchange="funktion1(this);function2(this,'hallo welt');"
im Javascript Kontext
inputObject.onchange = function(){ function1( this ); function2( this, 'hallo welt') };
bedeutet. Weshalb sich bei Kirstin die Idee noch nicht eingeschlichen hat, dass sie auch einfach inputObject.onchange();
ausführen könnte.
(Vorträge über richtiges™ Event-Management spare ich mir hier einfach mal.)
weiterhin schönen abend...
n'abend,
»» Was heißt wie rufe ich die Funktion auf? Sie wird aufgerufen, wenn du im select Element etwas änderst.
Ich befürchte Kirstin weiß nicht, dass
<input onchange="funktion1(this);function2(this,'hallo welt');"
im Javascript Kontext
inputObject.onchange = function(){ function1( this ); function2( this, 'hallo welt') };
bedeutet. Weshalb sich bei Kirstin die Idee noch nicht eingeschlichen hat, dass sie auch einfachinputObject.onchange();
ausführen könnte.
ok, das wusste ich noch nicht
(Vorträge über richtiges™ Event-Management spare ich mir hier einfach mal.)
weiterhin schönen abend...
gibt es etwas zu bemängeln bei mir? Über eine Info wäre ich sehr dankbar, damit ich die Fehler beseitigen kann? Gibt es dazu brauchbare Lektüre?
Kristin
n'abend,
gibt es etwas zu bemängeln bei mir? Über eine Info wäre ich sehr dankbar, damit ich die Fehler beseitigen kann? Gibt es dazu brauchbare Lektüre?
Bemängeln? Das kommt wohl rein auf das Evangelium an. Ich versuche mir abzugewöhnen anderen Leuten meinen Glauben aufzuzwingen. Wenn du aber dennoch "Mängel" aufgezeigt bekommen magst:
_Ich_ würde es beispielsweise komplett vermeiden Javascript Gedöns in mein HTML-Dokument zu packen. <input onchange=""> ist, laut meinem Evangelium, zu 100% vermeidbar. Stattdessen werden solche Event-Handler mittels Javascripts nach dem Laden der Seite eingeklinkt. Sollte mal kein Javascript zur Verfügung stehen, geht schon nichts kaputt.
Ich würde mich mit jQuery auseinandersetzen. Es erleichtert das Javascript-Leben ungemein. Es gibt einfache Schnittstellen um Elemente zu finden und zu manipulieren. Es gibt etliche Plugins (von denen ich bislang kein einziges einsetze). Es macht die unzulänglichkeiten verschiedener Browser transparent - kümmert sich also um die Unterschiede zwischen Browsern und dem Internet Explorer. Ohne dein Zutun. Herrlich einfach. Das Event-Management gefällt mir auch sehr gut. Es ist einfach, aber extrem mächtig.
weiterhin schönen abend...