Selektion in einer Auswahlliste abfragen
Joshua
- javascript
0 ThomasP0 holger kuehne0 Joshua
0 holger kuehne0 Beate Mielke0 Joshua
Hallo Forumer!
Nach ausführlichem Stöbern in den Tiefen (d.h. im Archiv) dieses Forums bin ich zur Erkenntnis gelangt, daß mindestens 90% der gestellten Fragen zur Zufriedenheit der Fragesteller beantwortet wurden ... leider war das bei mir (noch) nicht der Fall! (Zumindestens eine Antwort von der Art "Dein Problem ist nicht zu lösen, Du armes Schwein!" habe ich mir erhofft ;-))
Nach wie vor habe ich somit folgendes DRINGENDE (d.h. am besten gestern zu lösende) Problem:
Wie kann ich bei einer über JavaScript-Arrays dynamisch gefüllte Auswahlliste (SELECT) feststellen, ob das bereits aktive Element (OPTION) selektiert wurde? Zum besseren Verständnis: den Wechsel zu einem ANDEREN Element kann ich ja über den Event-Handler "onChange" abfragen.
Eingesetzter Browser ist der Navigator ab Version 4.
Laßt Eurem Ehrgeiz freien Lauf und zeigt mir, daß es "Gibt's nicht!" nicht gibt!!!
Vielen Dank schonmal!
Josh
Hi Josh!
Wenn ich richtig verstanden habe, willst Du wissen, ob jemand den <SELECT> benutzt hat.
<Workaround>
definiere global: var benutzt=0;
setze Event: <SELECT ..... onClick="JavaScript:geclickt()">
schreibe Funktion:
function geclickt()
{ var benutzt=1; }
</Workaround>
Nicht getestet. (koa Zeit net)
Dann kannst Du beim Auswerten abfragen, ob benutzt=1 ist.
Gruß
Thomas
Hi Thomas
Die Idee ist ja sehr gut, aber das Problem ist, das das event onclick laut javascript nur in
<a> <area> <input> <textarea> erlaubt ist :-(( Deshalb kann das auch nicht klappen!
Holger
Hi Holger und Thomas,
ja genau: "onClick" funktioniert (per Definition) nur in HTML4.0, nicht unter Netscape!
Scheint wohl doch ein elementares Problem zu sein ...
Seid trotzdem bedankt ...
Josh
Hi Josh
Eine fuer dich befriedigende Loesung habe ich leider nicht...Aber ich habe einen Alternativforschlag: Warum definierst du nicht irgendeinen "Gobutton" neben dem Auswahlmenue. Damit ist die Abfrage des aktiven Elementes ganz einfach.
siehe <../../tecbbdaa.htm>
Eine andere Loesung waere, ein zusaetzliches Element zu schreiben Marke "Bitte eine Auswahl treffen.." oder so aehnlich. Das muesste dann per Voreinstellung "selected" sein. Dann waere eine Abfrage mit onchange kein Problem mehr.
Ich hoffe ja, dass noch jemand eine bessere Loesung fuer dein Problem findet. (Die Loesung wuerde mich auch interessieren :-)) Wenn nicht musst du dich halt hiermit zufriedengeben.
Tschau Holger
Hallo Joshua,
»»Wie kann ich bei einer über JavaScript-Arrays dynamisch gefüllte Auswahlliste (SELECT) feststellen, ob das bereits aktive Element (OPTION) selektiert wurde?
... Eingesetzter Browser ist der Navigator ab Version 4.
Ich glaube hiermit geht's:
ziel = new Array(Anzahl);
ziel[0] = "a0.htm";
ziel[1] = "a1.htm";
...
ziel[Anzahl-1] = "aAnzahlminus1.htm";
function hierhin(form)
{
hilfe = ziel[form.wohin.selectedIndex];
/* die hilfe-Variable ist nur noetig, damit es auch mit Netscape funktioniert */
document.forms[Nummer der Form].reset();
/* setzt die Auswahl zurueck */
location = hilfe;
}
<form ...>
<select name = "wohin" onChange = "hierhin(this.form)">
<option> bla0
<option> bla1
...
<option> blaAnzahlminus1
</form>
Ich hab's unter Netscape und unter IE getestet, lief beides.
Viele Gruesse
Beate Mielke
Hallo Beate,
hmmm ... ich bin mir nicht sicher, ob wir da nicht aneinander vorbeireden. Da Du mit "onChange" abfragst, ist das generelle Problem der Reaktion auf das BEREITS AKTIVE Element doch nicht gelöst?! Oder hat das was mit der Verzweigung auf eine andere (aber ähnliche) HTML-Seite zu tun ("a0.htm", "a1.htm", ...)? Vielleicht kapier' ich ja nur Deine Lösung nicht!
Mit Bitte um eine kurze Erläuterung,
Josh
Hallo Joshua,
hmmm ... ich bin mir nicht sicher, ob wir da nicht aneinander vorbeireden. Da Du mit "onChange" abfragst, ist das generelle Problem der Reaktion auf das BEREITS AKTIVE Element doch nicht gelöst?! Oder hat das was mit der Verzweigung auf eine andere (aber ähnliche) HTML-Seite zu tun ("a0.htm", "a1.htm", ...)? Vielleicht kapier' ich ja nur Deine Lösung nicht!
Mit Bitte um eine kurze Erläuterung,
Ich bin mir nicht ganz sicher, ob wir aneinander vorbeireden.
Weil, so wie ich es in dem Beispiel gemacht habe, ist onChange IMMER wahr, weil ich nach jeder Auswahl das Menue wieder zuruecksetze. Das macht die reset()-Funktion. Auf diese Weise reicht es also aus, wenn Du Dir merkst zu welcher Option gewechselt wurde. Denn auch dann, wenn Du die gleiche Option danach wieder auswaehlst, wird wieder ein neuer Wert angegeben.
Damit habe ich Deine Frage nach der Feststellung des aktuellen Wertes zwar tatsaechlich nicht beantwortet. Aber ich meine, dass ich das Problem umgangen habe indem ich onChange zu einer Art "onAuswahl (nicht zu verwechseln mit onSelect)" umfunktioniert habe.
Ich weiss, klingt kompliziert. Aber wenn Du es jetzt noch nicht verstanden hast, dann poste es am besten morgen nochmal - ich vermute, das hier fliegt morgen mit dem Schwanzabschneider raus - aber dann bitte mit Deinem konkreten Beispiel, vielleicht kann ich es dann auf Deinen konkreten Fall umschreiben.
Es sei denn, ich habe Dich wirklich missverstanden.
Viele Gruesse
Beate Mielke