Ich habe ein Script , was die Formulareingaben auf Richtigkeit und Vollständigkeit überprüfen soll. Hierbei habe ich zwei Textfelder für das Passwort und ein Textfeld für die Postleitzahl.
Dabei soll das System überprüfen, ob bei beiden Textfeldern das gleiche Passwort steht.
Außerdem soll beim Textfeld für die Postleitzahl überprüft werden, ob fünf Ziffern eingetragen wurden.
Hier das Script:
<SCRIPT LANGUAGE="JavaScript">
<!--
// (C) 2002 Klaus Hentschel [ All rights reserved ].
// e-mail: kh@javarea.de
// www: http://www.javarea.de
function validate_form() {
validity = true;
if (!check_empty(document.form.Passwort1.value)){ /* Funktion Namen (Abfrage) */
validity = false;
show('Layer1');show('Layer2'); /* zeige Fehler */
}
if (!check_empty(document.form.Passwort2.value)){ /* Funktion Namen (Abfrage) */
validity = false;
show('Layer1');show('Layer3'); /* zeige Fehler */
}
if (!check_empty(document.form.Postleitzahl.value)){ /* Funktion Namen (Abfrage) */
validity = false;
show('Layer1');show('Layer4'); /* zeige Fehler */
}
if (!check_email(document.form.EMail.value)){ /* Funktion EMail (Abfrage) */
validity = false;
show('Layer1');show('Layer5'); /* zeige Fehler */
}
if (!check_url(document.form.URL.value)){ /* Funktion URL (Abfrage) */
validity = false;
show('Layer1');show('Layer6'); /* zeige Fehler */
}
if (validity);
return validity; /* alle Angaben waren korrekt */
}
function check_empty(text) {
return (text.length > 0); /* gibt false zurück wenn leer */
}
function check_email(address) { /* Email muss (@ und .) enthalten */
if ((address == "") || (address.indexOf ('@') == -1) || (address.indexOf ('.') == -1))
return false;
return true;
}
function check_url(address) { /* URL muss (http:// und .) enthalten */
if ((address == "") || (address.indexOf ('http://') == -1) || (address.indexOf ('.') == -1))
return false;
return true;
}
if (((navigator.appName == "Netscape") && (parseInt(navigator.appVersion.substring(0,1)) >=3))
|| ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion.substring(0,1)) >=4)))
Hallo Herbert,
zuerst zum Vergleich der beiden Passwörter. Eigentlich hast du alles wichtige schon in deinem Quelltext.
document.form.Passwort1.value enthält den eingegebenen Text von Feld1 und document.form.Passwort2.value analog für Passwortfeld 2.
Nun reicht es diese einfach mittels if(document.form.Passwort1.value == document.form.Passwort2.value) { } zu überprüfen. Das wirst du alleine eingebaut bekommen.
Für die PLZ würde ich eine Überprüfung mittels Regular Expressions vorschlagen. Damit kannst du Strings u.a. auf bestimmte "Muster/Ausdrücke" überprüfen.
Folgendes kleines Beispiel sollte dir es verdeutlichen
HTML-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var plz = document.form.Postleitzahl.value;
var plzcheck = plz.search(/^([0-9]{5})$/);
if (plzcheck != -1) {
// PLZ ist in Ordnung
} else {
// PLZ ist falsch
}
Der Code "sagt" suche im String der im PLZ Feld steht einen Ausdruck der am Anfang des Strings steht (^), aus 5 aufeinanderfolgenden Zeichen ({5}) die zwischen 0 - 9 liegen, also Zahlen ([0-9]) und der am Ende des Strings steht ($).
Wenn es dich interessiert gibt es genügend Ressourcen im Netz dazu. Sei noch angemerkt das ein PLZ Check je nach Einsatzgebiet umfangreicher aussehen sollte.
Gruß Danny
geschrieben von Herbert1204 am 11.12.2009 - 15:44
Hallo Danny
Vielen Dank für deine schnelle Antwort. Leider weiß ich nicht, wo ich die jeweiligen Sachen einfügen muß. Ich habe schon einiges ausprobiert, aber alles ohne Erfolg.
Kannst Du vielleicht das obenstehende Script vervollständigen?
Im Voraus schon einmal Vielen Dank
Herbert
geschrieben von Danny am 12.12.2009 - 11:52
Hallo Herbert,
dann poste uns deine Versuche. Sowas bringt in der Regel für einen selbst mehr. Es zu verstehen warum das nicht geht was man gemacht hat, anstatt die fertige Lösung dann einfach reinzukopieren ;)
Du hast doch eine Reihe von Abfragen in der Art und Weise:
z.B.
HTML-Quelltext
1:
2:
3:
4:
if (!check_empty(document.form.Passwort1.value)){ /* Funktion Namen (Abfrage) */
validity = false;
show('Layer1');show('Layer2'); /* zeige Fehler */
}
So baust du die anderen beiden mit auf z.B:
HTML-Quelltext
1:
2:
3:
4:
if (document.form.Passwort1.value != document.form.Passwort2.value){ /* Passwoerter sind nicht gleich */
validity = false;
show('Layer1');show('Layer2'); /* zeige Fehler */
}
und fügst die unter einen bestehenden solchen Block.
Für die PLZ ganz analog
HTML-Quelltext
1:
2:
3:
4:
5:
var plz = document.form.Postleitzahl.value;
if (plz.search(/^([0-9]{5})$/) == -1){ /* PLZ ist falsch */
validity = false;
show('Layer1');show('Layer2'); /* zeige Fehler */
}
Gruß Danny
geschrieben von Herbert1204 am 12.12.2009 - 22:48
Hallo Danny
Vielen Dank für Deine schnell Hilfe.
Jetzt ist es genau so, wie ich es haben wollte.