Beschreibung |
Manchmal möchte man dem Benutzer Optionen zur Auswahl vorlegen, deren Anzahl zwar groß ist, die aber kaum erklärungsbedürftig sind, z.B. Fragen wie "In welchem Bundesland wohnen Sie ..."
Die folgenden Beispiele zeigen die Verwendung von mehrzeiligen Feldern vom Typ <SELECT SIZE=... NAME="...>
Syntax |
WertUebertragen(Quelle, Ziel, Entfernen)
Quelle |
Listenfeld (Objekt). Dieses Listenfeld bietet die verschiedenen Optionen an, die von der Funktion WertUebertragen kopiert / verschoben / gelöscht werden |
Ziel |
Listenfeld (Objekt) oder null . Dieses Listenfeld nimmt die
verschiedenen Optionen entgegen, die von der Funktion WertUebertragen aus dem
anderen Listenfeld entnommen werden. |
Entfernen |
true oder false . Gibt an, ob die gewählte Option
in Quelle geloscht werden soll. |
AlleWerteLoeschen(Ziel)
Ziel |
Listenfeld (Objekt). Löscht alle Einträge aus einem Listenfeld |
Anmerkungen |
WertUebertragen()
wird zweckmäßigerweise mit dem OnClick-Ereignis aber ohne das Schlüsselwort MULTIPLE
(= mehrere Einträge auswählen) verwendet. Beim Klick auf einen Wert im Listenfeld wird dieser von
der Funktion WertÜbertragen()
bearbeitet. Die folgenden Beispiele zeigen die Anwendung.
<SELECT NAME="Quelle" ONCLICK="WertUebertragen(this, this.form.Ziel, false)" SIZE=5>
<SELECT NAME="Quelle" ONCLICK="WertUebertragen(this, this.form.Ziel, true)" SIZE=5>
<SELECT NAME="Quelle" ONCLICK="WertUebertragen(this, null, true)" SIZE=5>
AlleWerteLoeschen()
wird am Besten mit dem ONCLICK-Ereignis eines Buttons verwendet.
Funktions-Demo |
Die folgenden Formulare demonstrieren die Wirkung der Funktion.
Code |
<SCRIPT LANGUAGE="JavaScript1.1" TYPE="text/javascript"><!-- function WertUebertragen(Quelle, Ziel, Entfernen) { var WertVorhanden = false var ZielVorhanden = (typeof Ziel != "undefined") && (Ziel != null) if (!ZielVorhanden) { Entfernen = true } for (var Nr = 0; Nr < Quelle.length; Nr++) { var QuellOption = Quelle.options[Nr] if (QuellOption.selected) { if(ZielVorhanden) { // Prüft, ob der Wert schon im rechten Textfeld vorhanden ist for (var Pos = 0; Pos < Ziel.length;) { WertVorhanden = (Ziel.options[Pos++].text == QuellOption.text) if (WertVorhanden) { break } } // Falls der Wert nicht vorhanden ist, wird er an das rechte // Listenfeld angefügt if (!WertVorhanden) { Ziel.options[Ziel.length] = new Option(QuellOption.text, QuellOption.value) } } if (Entfernen) { Quelle.options[Nr] = null } } } } // Löscht alle Werte aus dem Textfeld function AlleWerteLoeschen(Ziel) { for (var Nr = Ziel.length; Nr > 0;) Ziel.options[--Nr] = null } // Beispiel: So liest man Werte aus einem Listenfeld function Auslesen(ListenFeld) { var AusgabeText = "" for (var Nr = 0; Nr < ListenFeld.length;) AusgabeText += ListenFeld.options[Nr++].text + "\n" alert (AusgabeText) } // --> </SCRIPT>