Hallo,
Der Grund dafür, dass er die Länge immer testet, auch wenn kein Datum drin steht, ist relativ einfach. Statt
if (document.forms[0].radio[2].checked && document.test.datum.value == "")
{
alert(" Bitte geben Sie einen Wert bei "Datum" ein.");
document.test.datum.focus();
return (false);
}if (document.test.datum.value.length < 10)
{
alert("Geben Sie mindestens 10 Zeichen in das Feld "Datum" ein.");
document.test.datum.focus();
return (false);
}if (document.test.datum.value.length > 10)
{
alert("Geben Sie höchstens 10 Zeichen in das Feld "Datum" ein.");
document.test.datum.focus();
return (false);
}
müsste es heißen
if (document.forms[0].radio[2].checked && document.test.datum.value == "")
{
alert(" Bitte geben Sie einen Wert bei "Datum" ein.");
document.test.datum.focus();
return (false);
}
else if (document.test.datum.value.length < 10)
{
alert("Geben Sie mindestens 10 Zeichen in das Feld "Datum" ein.");
document.test.datum.focus();
return (false);
}
else if (document.test.datum.value.length > 10)
{
alert("Geben Sie höchstens 10 Zeichen in das Feld "Datum" ein.");
document.test.datum.focus();
return (false);
}
denn sonst arbeitet er alles nach dem ersten if-Block einfach weiter ab, egal was da raus kommt. Nebenbei: Die beiden unteren Blocks kannst du auch einfach durch
else if (document.test.datum.value.length != 10)
{
alert("Geben sie genau 10 Zeichen in das Feld "Datum" ein.");
document.test.datum.focus();
return (false);
}
ersetzen.