Auswahlliste (select) Anzahl ausgewaehlter Werte herausfinden
Dominique
- javascript
Hallo,
ich habe ein Problem mit einer Auswahlliste, die als Mehrfachauswahl realisiert ist:
<select name="Auswahl[]" size="10" multiple>
<option value="oben" selected>nach oben</option>
<option value="unten" selected>nach unten</option>
<option value="links" selected>nach links</option>
<option value="rechts" selected>nach rechts</option>
</select>
Jetzt will ich in meiner Funktion "chkForm()" ueberpruefen, wie viele Werte der Benutzer ausgewaehlt hat, um evtl. direkt eine Fehlermeldung zu senden. Leider hat bei mir nix funktioniert, da ich nicht mit
alert(this.frmEditRichtung.Auswahl.options.length)
oder
alert(this.frmEditRichtung.Auswahl.length)
oder
alert(this.frmEditRichtung.Auswahl[].length)
auf die Anzahl komme und nur JS-Fehler habe :-(
Weiss jemand wie das geht?
Vielen Dank
Gruss
Dominique
hi dominique,
hier die lösung:
<html>
<head>
<script type="text/JavaScript">
function check(obj){
a = new Array();
k = 0;
for(i=0;i<obj.options.length;i++){
if(obj.options[i].selected){
a[k] = obj.options.value;
k++;
}
}
alert(a);
}
</script>
</head>
<body>
<form name=figgi>
<select name="Auswahl" size="10" multiple onchange="check(this)">
<option value="oben">nach oben</option>
<option value="unten">nach unten</option>
<option value="links">nach links</option>
<option value="rechts">nach rechts</option>
</select>
</form>
</body>
</html>
Erklärung:
obj.options.length --> Länge des select (bzw. Anzahl der Auswahlmöglichkeiten)
obj.options[i].selected --> Prüfen, ob die Option markiert ist
a[k] = obj.options.value --> den kleinen Array mit den Werten füllen
Viele Grüsse
:) Oli
Danke Oli, aber das klappt nicht so ganz.
Kann ich das nicht so machen, dass ich mir beim "submit" die Anzahl angeben lassen kann?
UND
Mein select muss mit den eckigen Klammern bestehen bleiben, da ich anschliessend mit PHP das Array auswerten will. Darum hab ich ja auch so den Endstress :-))
Aber wie gesagt: DANKE, denn das ist ein Ansatz, mit dem ich vielleicht weiter komme - aber heute nicht mehr *gähn*
Gruss
Dominique
<html>
<head>
<script type="text/JavaScript">
function check(obj)
{
k = 0;
for(i=0;i<obj.options.length;i++)
{
if(obj.options[i].selected)
{
k++;
}
}
alert(k);
}
</script>
</head>
<body>
<form name=figgi>
<select name="Auswahl[]" id="Auswahl" size="10" multiple>
<option value="oben">nach oben</option>
<option value="unten">nach unten</option>
<option value="links">nach links</option>
<option value="rechts">nach rechts</option>
</select>
<input type="Button" onmousedown="check(document.figgi.Auswahl)"
</form>
</body>
</html>
<html>
<head>
<script type="text/JavaScript">function check(obj)
{
k = 0;
for(i=0;i<obj.options.length;i++)
{
if(obj.options[i].selected)
{
k++;
}
}
alert(k);
}</script>
</head>
<body>
<form name=figgi>
<select name="Auswahl[]" id="Auswahl" size="10" multiple>
<option value="oben">nach oben</option>
<option value="unten">nach unten</option>
<option value="links">nach links</option>
<option value="rechts">nach rechts</option>
</select>
<input type="Button" onmousedown="check(document.figgi.Auswahl)"
<input type="Button" onclick="check(this.form['Auswahl[]']):">
Struppi.