Raucherkrebs: Problem mit Funktion

Beitrag lesen

Es gibt folgende Funktionen:

function checkBirthday(form) {
    if (!form.birthday.value || !form.birthmonth.value || !form.birthyear.value) {
        alert("Bitte geben Sie Ihr Geburtsdatum ein ?");
        form.birthday.focus();
        return false;
    } else if (isNaN(form.birthday.value) || isNaN(form.birthmonth.value) || isNaN(form.birthyear.value)){
        alert("Bitte geben Sie Ihr ein korrektes Geburtsdatum im Format TT/MM/JJJJ ein ?");
        form.birthday.focus();
        return false;
    } else {
        birthdate = form.birthday.value + form.birthmonth.value + form.birthyear.value;
var err = checkDate(birthdate);
        switch (err) {
case "0":
return true;
break;
case "19":
alert("Bitte führende Nullen beim Datum mit angeben.");
form.birthday.focus();
return false;
break;
case "20":
alert("Bitte korrekte Jahreszahl eingeben.");
form.birthyear.focus();
return false;
break;
case "21":
alert("Bitte korrekte Monatszahl eingeben.")
form.birthmonth.focus();
return false;
break;
case "22":
alert("Fehler im Datum.")
form.birthday.focus();
return false;
break;
case "23":
alert("Fehler im Datum.")
form.birthday.focus();
return false;
break;
case "24":
alert("Dieser Monat hat nicht so viele Tage.");
form.birthmonth.focus();
return false;
break;
case "25":
alert("Bitte korrekte Monatstag eingeben.")
form.birthday.focus();
return false;
break;
case "26":
alert("Fehler im Datum.")
form.birthday.focus();
return false;
break;
}
}
}

function checkDate(date){
    var checkstr = "0123456789";
    var DateField = "";
    var Datevalue = date;
    var DateTemp = "";
    var seperator = ".";
    var day;
    var month;
    var year;
    var leap = 0;
    var err = 0;
    var i;
    err = 0;
    /* 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 = "";
    }
    return err;
}

Das Problem ist nun, dass von der zweiten Funktion kein error code zurückgegeben wird. Rufe ich die falsch auf. Bin ratlos.