Hallo zusammen,
vielleicht hat jemand einen Nutzen aus dem folgenden Skript:
Code:
/**
* Überprüft die Angaben die der Benutzer in einem
* einzeiligen Textfeld gemacht hat auf ein bestimmtest Format.
* unterstütze Formate:
* mail => Überprüfung auf korrekte eMail-Adresse
* datum => Überprüfung auf korrektes Datum tt.mm.jjjj
* uhrzeit => Überprüfung auf korrekte Uhrzeit hh:mm:ss
* @param string modus eines der unterstützten Formate
* @param string errMsg Fehlermeldung die bei einem Fehler ausgegegeben werden soll
* ansonsten wird eine Standardfehlermeldung (abhängig vom Modus ausgegeben)
* @param formElement feld Feld im Formular (nicht den Inhalt des Feldes)
* @param string vorgegebenerText Text der vorher im Feld steht
* gibt true oder false zurück
*/
function checkText(modus,errMsg,formular,feld,vorgegebenerText){
var feld = formular.elements[feld];
if(modus == 'mail'){
if(checkMail(feld) && feld.value!=vorgegebenerText){
return true;
}
else {
if(errMsg!=''){
alert(errMsg);
feld.focus();
}
else{
alert("Die angegebene eMail-Adresse ist nicht korrekt.")
feld.focus();
}
return false;
}
return
}
if(modus == 'datum'){
if(checkDate(feld) && feld.value!=vorgegebenerText){
return true;
}
else {
if(errMsg!=''){
alert(errMsg);
feld.focus();
}
else{
alert("Das angegebene Datum ist nicht korrekt. Es muss das Format tt.mm.jjjj haben.")
feld.focus();
}
return false;
}
return
}
if(modus == 'uhrzeit'){
if(checkUhrzeit(feld) && feld.value!=vorgegebenerText){
return true;
}
else {
if(errMsg!=''){
alert(errMsg);
feld.focus();
}
else{
alert("Die angegebene Uhrzeit ist nicht korrekt. Sie muss das Format ss:mm haben.")
feld.focus();
}
return false;
}
return
}
}
/**
* Überprüft ein Feld darauf ob dieses eine eMail-Adresse enthält
* @param formElement mailFeld Formularfeld, dass eine eMail-Adresse enthalten soll
* @return true wenn eMail ok (WICHTIG: Wenn das Feld leer ist gibt es auch true!)
**/
function checkMail(mailFeld){
if(mailFeld.value.length==0){
return true // Überprüfung erfolgt über das allgemeine Skript zur Prüfung von Formularelementen!
}
var positionAt= mailFeld.value.indexOf("@")
if(positionAt== -1 || positionAt==0 || positionAt==mailFeld.value.length){
return false
}
if (mailFeld.value.indexOf("@", positionAt + 1) > positionAt) {
return false
}
var positionPoint = mailFeld.value.indexOf(".", positionAt)
if ((positionPoint == -1) || (positionPoint - positionAt < 2)) {
return false
}
return true;
}
/**
* Überprüft ob das Formularfeld dateFeld ein korrektes Datum überprüft.
* bedingte Prüfung ob Datum existiert.
* Keine Prüfung ob februar 29 oder 28 tage hat
*/
function checkDate(dateFeld){
if(dateFeld.value.length==0 || dateFeld.value.length !=10){
return false
}
var firstPoint = dateFeld.value.indexOf(".")
if(firstPoint!=2){
return false
}
var secondPoint = dateFeld.value.indexOf(".", firstPoint + 1)
if(secondPoint!=5){
return false
}
var tag = dateFeld.value.substr(0,2);
var monat = dateFeld.value.substr(3,2);
var jahr = dateFeld.value.substr(6,4);
if(tag>31 || tag<1 || monat>12 || monat<1){
return false;
}
if(monat==02 && tag>29){
return false
}
if((monat==04 || monat==06 || monat==09 || monat==11) && tag>30){
return false;
}
return true;
}
Überprüft ein Feld auf ein bestimmtes Format.
Aufruf erfolgt über
Code:
<form onSubmit="return (checkText('datum','Fehlermeldung',window.document.formularName,'feldName','Text der im Feld steht'))"
Verbesserungsvorschläge sind gerne willkommen.
Grüße
Jan