Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: voodoo am 22.09.06 - 12:17:42

Titel: Validierung mit Javascript
Beitrag von: voodoo am 22.09.06 - 12:17:42
Hallo allerseits,

ich habe eine Webmaske, bei der ich beim submit gerne bestimmte Felder validieren möchte. Klappt auch alles wunderbar, nur bei den Radiobuttons klappt es nicht. Entweder der Wert wird gar nicht geprüft oder es bringt immer eine Fehlermeldung, egal ob ein Wert ausgewählt wurde oder nicht.

Die Funktion habe ich aus dem Web, nach einem Tipp von dieser Seite hier.

Code
if ( !isSomethingSelected(e) ){
	alert("Bitte wählen Sie einen internen Bereich.");
	e.focus();
	return false}

und die Funktion isSomethingSelected:
Code
function isSomethingSelected( obj ){
	for (var r=0; r < obj.length; r++){
		if ( obj[r].checked ) return true;
	}
}

Mit diesem Code kommt immer die Meldung, man solle einen Bereich wählen, auch wenn einer gewählt ist. Prüfe ich einfach mit

Code
if (e.echecked == false) {
	alert("Bitte wählen Sie eine interne Abteilung.");
	e.focus();
	return false} 

dann ist die Prüfung erfolgreich, auch wenn nichts ausgewählt ist.

Ist wahrscheinlich ein Anfängerfehler aber ich komme da nicht weiter...
Titel: Re: Validierung mit Javascript
Beitrag von: voodoo am 22.09.06 - 12:54:57
Nochmal hallo allerseits,

ich habs gelöst, auf einem etwas anderen Weg, indem ich direkt auf den Feldnamen zugreife:

Code
if ( (f.Priority[0].checked == false) 
	&& (f.Priority[1].checked == false) )  {
		alert("Bitte wählen Sie die Priorität.");
		e.focus();
		return false}

Aber warum das andere nicht funktioniert hat ist mir immer noch nicht klar.
Titel: Re: Validierung mit Javascript
Beitrag von: Ayhan am 23.09.06 - 12:22:00
Hi,

dein Code muss eigentlich funktionieren. Von wo aus rufst du denn deine Funktion auf? Hast dafür eine weitere Funktion? Das einzige was ich mir in deinem Fall als Fehlerquelle vorstellen kann ist, dass du dein Feld nicht als Objekt an die Funktion isSomeThingSelected übergibst.

Dein Code müsste ja zum Validieren so in etwa sein:
....
var e = document.forms[0].deinFeld;

if(!isSomeThingSelected(e)) {
.....

Folgendes würde ich an deiner Stelle ausprobieren:
1. Nach dem "var e = doc...." einen alert(e.Name) einbauen. Dann kannst dir sicher sein, dass "e" richtig deklariert wurde.
2. In der Funktion isSomeThingSelected vor der For-Schleife ebenfalls einen alert auf die Länge der Einträge: alert(obj.length)

Wenn diese 2 Werte passen, dann muss die Funktion richtig laufen. Wenn nicht, hast du evtl. bereits beim deklarieren deines Feldes "var e = ..." einen Fehler.