Zur Website

Start Buchtipp Noch mehr Lösungen und Tricks Kontakt Copyright Impressum







JavaSript Funktion:

Datum prüfen


Script prüft ob
das angegebene Datum
plausibel ist.

Nr.9

©2004


Beispiel:

Klicken Sie den Button "Absenden".

Datum

Beschreibung:

Script prüft vor Absenden des Formulares, ob das angegebene Feld ein plausibles Datum enthält.

Es wird auf korrekte Form xx.xx.xxxx geprüft. Tages- und Monatsangaben werden unter Berücksichtigung von Schaltjahren geprüft. Die Jahresangabe wird im Bereich 2000 bis 2099 akzeptiert (kann geändert werden).

Bei fehlender oder fehlerhafter Eingabe wird ein Meldungsfenster ausgegeben und das Feld fokussiert, ohne den Inhalt zu löschen.

Funktion:

(zwischen <head>...</head> platzieren)

<script language="JavaScript"><!--
function DatPruef (formularX, feldY) {
text = document.forms[formularX].elements[feldY].value;
reg1 = /[0-3][0-9]\.[01][0-9]\.[2][0][0-9][0-9]/;
if (!reg1.test(text))
{ TextAusgabe(formularX, feldY);
return false;
}
else
{
t = text.substring(0,2);
m = text.substring(3,5);
j = text.substring(6,10);
if (m>12){TextAusgabe(formularX, feldY);return false;}
reg2 = /04|06|09|11/;
if (reg2.test(m))
{
if (t >30){TextAusgabe(formularX, feldY);return false;}
}
if (t>31){TextAusgabe(formularX, feldY);return false;}
if (m==2)
{
if (j%4==0 && t>29){TextAusgabe(formularX, feldY);return false;}
if(j%4!=0 && t>28){TextAusgabe(formularX, feldY);return false;}
}
return true;
}
}
function TextAusgabe (formularX, feldY) {
alert ('Bitte geben Sie ein korrektes Datum an!\n\n'+
'z.B. 12.08.2003');
document.forms[formularX].elements[feldY].focus();
}
// -->
</script>

Aktivierung:

Die Funktion wird beim Absenden des Formulares aufgerufen:

<form onSubmit="return(DatPruef(0,0))" name="Formular">

Hinweise:

DatPruef(0,0)

0 bezieht sich auf das 1. Formular des Dokumentes (Zählung beginnt bei 0!), 0 bezeichnet das 1. Feld.

...
reg1 = /[0-3][0-9]\.[01][0-9]\.[2][0][0-9][0-9]/;
...

An dieser Stelle können Sie den Jahresbereich verändern:

[12][0-9][0-9][0-9] Bereich: 1000 - 2999