Antje Hofmann: Vorbelegung Dropdownfelder in Formular

Beitrag lesen

Hallo Gernot,

So jetzt zum eigentlichen Problem:
Ich möchte den Benutzer beim Ausfüllen des Formulares unterstützen. Das soll so laufen:
Wenn er in einem Dropdownfeld einen Eintrag auswählt, soll in dem nachfolgenden Dropdownfeld(wenn es denn eins gibt) der selbe Eintrag vorbelegt werden.

z.B User wählt in Liste2 die Auswahl3

»»  -> Es wird geprüft: Gibt es eine Liste3, wenn ja Vorbelegung in Liste3=Auswahl3

Interessante Frage :-), ich habe ein wenig gebastelt und bin auf folgende Lösung gekommen:

<html>
<head>
<title>Test Formular</title>
</head>
<body>
<script language="JavaScript">
function check(a)
{
   x=a.name.substring(5,a.name.length)*1+1;
   if (document.Formular["Liste"+x])
   document.Formular["Liste"+x].options[a.selectedIndex].selected=true;
}
</script>

<form method="POST" name="Formular" action="cgi-bin/formtest.pl">
<p>
<select size="1" name="Liste1" onChange="check(this)">

<option>Auswahl1</option>
<option>Auswahl2</option>
<option>Auswahl3</option>
</select>
</p>

<p>
<select size="1" name="Liste2" onChange="check(this)">
<option>Auswahl1</option>
<option>Auswahl2</option>
<option>Auswahl3</option>
</select>
</p>
<p><select size="1" name="Liste3" onChange="check(this)">
<option>Auswahl1</option>
<option>Auswahl2</option>
<option>Auswahl3</option>
</select></p>

<p><input type="submit" value="Abschicken" name="Button1"><input type="reset" value="Zurücksetzen" name="Button2"></p>
</form>
</script>

</body>
</html>

Das sollte problemlos funktionieren.

Zum Funktionsprinzip:
Beim Wechseln der Auswahl und nur dann! wird die Funktion check() aufgerufen. Diese erhält als Übergabeparameter die Liste selbst.

In der Funktion schaut das Script nach, welche Liste es ist und holt sich die Nummer dieser Liste.
Das macht konkret diese Zeile:

x=a.name.substring(5,a.name.length)*1+1;
  
Solltest du irgendwann mal statt Liste1,... z.B. Auswahl1 verwenden, dann mußt du statt der 5 die Buchstabenzahl reinschreiben und natürlich im nachfolgenden Teil Liste jeweils durch die Bezeichnung ersetzten.

Anschließend prüft das Script, gibt eine nachfolgende Liste? Wenn ja, wird in der Liste die gewählte Option auf ausgewählt gesetzt.

Das war es schon.

Schönes Wochenende Allerseits

Dir ebenfalls :-)

Viele Grüße
Antje

PS: Dank WS64 heute auch mit Banner :-)

<img src="http://pc-anfaenger.de/pca/sam/pcanfaenger.gif" alt="">