Array prüfen

DiDiJo

Erfahrenes Mitglied
Hey leute ... ich habe mir ein paar funktionen gebastelt um meine formulare zu checken:

Code:
function isDefined(obj,f) {
	if (f[obj]){
		//alert("true");
		return true;
	}
	else{
		//alert("false");
		return false;
	}
}

function isImportant(obj) {
	if (obj.className == 'important')  {
		//alert("important true");
		return true;
	}else {
		//alert("important false");
		return false;
	}
}

function checkForm(f){
	var name;
	var error = 0;		
	var auswahl = 0;
	var error_text = '';
	
	// User - Bereich (Registrierung etc...)
	
	if (isDefined("nname",f))	{	
		if (f.nname.value == "" && isImportant(f.nname)) {
			error = 1;
			error_text += "<li>Bitte geben Sie Ihren Nachname ein</li>";
			}
		}
		
	if (isDefined("vname",f))	{	
		if (f.vname.value == "" && isImportant(f.vname)) {
			error = 1;
			error_text += "<li>Bitte geben Sie Ihren Vorname ein</li>";
			}
		}

	if (error > 0) {
		document.getElementById('FehlerBox').style.display = "block";	 
		document.getElementById('FehlerBox').innerHTML		= error_text;
		return false;
		}
	else {
		document.formular.submit();
		return true;
	}
}

Soweit kein Problem. Wie kann ich aber nun prüfen ob mindestens eine von den folgenden Checkboxen gewählt wurde

HTML:
<input type="checkbox" name="kat[]" class="important" value="Bauträger" > Bauträger<br/>
<input type="checkbox" name="kat[]" class="important" value="Fertighäuser" > Fertighäuser<br/>
<input type="checkbox" name="kat[]" class="important" value="Massivhäuser" > Massivhäuser<br/>
<input type="checkbox" name="kat[]" class="important" value="Bausatzhäuser" > Bausatzhäuser

das hat schonmal nicht funktioniert
Code:
	if (isDefined("kat[]",f))	{
		if (f.kat.length == 0) {
			error = 1;
			error_text += "<li>Bitte geben Sie mindestens eine Kategorie an</li>";
			}
		}	
// ODER DIES HIER:
	if (isDefined("kat",f))	{
		if (f.kat.length == 0) {
			error = 1;
			error_text += "<li>Bitte geben Sie mindestens eine Kategorie an</li>";
			}
		}
 
Hi,

erstens dürfte das in der Fehlerkonsole (die solltest Du wirklich mal nutzen) eine Meldung geben, da Du auf ein Formularelement mit dem Namen "kat[]" nicht mit "formular.kat" zugreifen kannst. Schema 4 in der SelfHTML-Doku zum elements-Objekt hilft Dir da weiter.
Zweitens solltest Du mal nachlesen, was denn in der Eigenschaft length eigentlich gespeichert ist, nämlich nicht das, was Du Dir vorgestellt hast. ;)

Wenn Du hier mal nach "Checkboxen checked" beschränkt auf das Javascriptforum suchst, findest Du haufenweise Themen, in denen das Zählen angehakter Checkboxen behandelt wird.

LG

PS.: Und wähle doch bitte das nächste Mal einen besseren Titel, das clientseitige Prüfen von Checkboxen hat doch nichts mit dem serverseitigen $_REQUEST-Array von PHP zu tun...
 
Zuletzt bearbeitet:
Zurück