scriptwelt.org das JavaScript Archiv

Navigation
Startseite
Audio & Sound
Formulare
Cookies
Fenster & Frame
Grafik & Text
Navigation
Suche Scripts
Fun und Spiele
Buttons
Diverse
Tutorials

Kontakt
eine Mail an ScriptWelt.org
Webhosting
Tipps zur Providerwahl und zum Webspace

JavaScript in eine HTML Datei einbinden

Sind JavaScripts sicher?

Links zum Thema JavaSript

Impressum
impressum

Formulare JavaScript / Validierung der Datumseingabe

Mit diesem Script lässt sich die Eingabe eines Datums auf click validieren. So kann einfach ein falsch eingegebenes Datumsformat in ein akzeptiertes Format gewandelt werden.
Autor: unbekannt
zur Demo

in <head> einfügen

<script type="text/javascript">
function check_date(field){
var checkstr = "0123456789";
var DateField = field;
var Datevalue = "";
var DateTemp = "";
var seperator = ".";
var day;
var month;
var year;
var leap = 0;
var err = 0;
var i;
err = 0;
DateValue = DateField.value;
/* Delete all chars except 0..9 */
for (i = 0; i < DateValue.length; i++) {
if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
DateTemp = DateTemp + DateValue.substr(i,1);
}
}
DateValue = DateTemp;
/* Always change date to 8 digits - string*/
/* if year is entered as 2-digit / always assume 20xx */
if (DateValue.length == 6) {
DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
if (DateValue.length != 8) {
err = 19;}
/* year is wrong if year = 0000 */
year = DateValue.substr(4,4);
if (year == 0) {
err = 20;
}
/* Validation of month*/
month = DateValue.substr(2,2);
if ((month < 1) || (month > 12)) {
err = 21;
}
/* Validation of day*/
day = DateValue.substr(0,2);
if (day < 1) {
err = 22;
}
/* Validation leap-year / february / day */
if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
leap = 1;
}
if ((month == 2) && (leap == 1) && (day > 29)) {
err = 23;
}
if ((month == 2) && (leap != 1) && (day > 28)) {
err = 24;
}
/* Validation of other months */
if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
err = 25;
}
if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
err = 26;
}
/* if 00 ist entered, no error, deleting the entry */
if ((day == 0) && (month == 0) && (year == 00)) {
err = 0; day = ""; month = ""; year = ""; seperator = "";
}
/* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
if (err == 0) {
DateField.value = day + seperator + month + seperator + year;
}
/* Error-message if err != 0 */
else {
alert("Date is incorrect!");
DateField.select();
DateField.focus();
}
}
</script>

in <body> eingeben

<FORM name="datecheck">
<TABLE border="0" width="60%">
<TR>
<TD>
Enter Date (Use European format shown at right)<P>
<INPUT type="text" name=testdat size='10' maxlength="10" onblur="check_date(this)">
<INPUT type= "submit" name="button" value="Press to Validate"><p>
(Date is validated after leaving the field.)
</TD>
<TD>
<b>ddmmyy</b> (171201) or <BR>
<b>ddmmyyyy</b> (17122001) or <BR>
<b>ddXmmXyy</b> (17-12-01 or 17y12q01 ... ) or <BR>
<b>ddXmmXyyyy</b> (17.12.2001 or 17,12,2001 ...) <br>
where "X" is any sign not in 0..9, i.e. "-" or "/"<p>
</TD>
</TR>
</TABLE>
</FORM>
</CENTER>