variable Anzahl an Checkboxen prüfen - Geht immer nur be Anzahl=1 nicht

mnbvcxy

Mitglied
Mein Problem ist folgendes:
Ich habe eine variable Anzahl an Checkboxen. (zwischen 1 und theoretisch unendlich).
Dabei muss beim Absenden des Formulars mind. 1 gewählt sein! Ansonsten muss eine Meldung kommen.

Witzigerweise funktioniert das soweit auch, nur sobald ich nur 1 Checkbox habe geht es einfach nicht!
Das Formular sieht so aus:
Code:
<form method=POST name="neuemail">
 <input type="checkbox" name="mailrecipient[]" value="1">
 <input type="checkbox" name="mailrecipient[]" value="2">

<a href="javascript:sendmail('neuemail','mailrecipient[]');">absenden</a>
</form>
Der js Code sieht so aus:
Code:
function sendmail(cbForm, cbName)
{
    var chk = 0;

    mailCheckbox = window.document.forms[cbForm].elements[cbName];

    for (i=0; i<mailCheckbox.length; i++) {
        if (mailCheckbox[i].checked) {
		chk = 1;
	}
    }
  (Hier wird dann chk geprüft, ist aber für den Fehler egal...)
}
Erstaunlicherweise scheint ein Array mit nur einem Feld nicht möglich zu sein...sprich es kommt undefined bzw. Null or not an Object... Die Frage ist nun wie umgehe ich das bzw. wie kann ich es lösen ohne eine Speziallösung für den Fall Anzahl Checkboxen = 1

Danke schonmal!


[edit]
Verdammt, tut mir leid wegen dem fehlenden i im Titel :(
 
Hi,

dieses Problem taucht meines Wissens nur im IE auf...erkannt hast du es richtig:
gibt es nur ein Element mit dem selben Namen, wird dort kein Array "angelegt".

Lösung: greife stattdessen per getElementsByName() zu...dort wird in jedem Fall ein Array zurückgegeben.
 
NEIN! Ich fall vom glauben ab...na gut, werde die Funktion mal anpassen. Mal sehen ob ich das hinbekomme!

Tausend dank schonmal für den Tipp, da hätte ich ja noch ewig basteln können...
 
Ok, hab jetzt nen Sonderfall für Anzahl=1 (mit getElementByName) und den Rest wie gehabt (lief ja soweit). Nicht elegant, aber funktional.

Danke für den Tipp!
 

Neue Beiträge

Zurück