Domino 9 und frühere Versionen > ND6: Entwicklung

Validierung mit Javascript

(1/1)

voodoo:
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}
--- Ende Code ---

und die Funktion isSomethingSelected:

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

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}
--- Ende Code ---

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

Ist wahrscheinlich ein Anfängerfehler aber ich komme da nicht weiter...

voodoo:
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}
--- Ende Code ---

Aber warum das andere nicht funktioniert hat ist mir immer noch nicht klar.

Ayhan:
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.

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln