Cochrane: Problem bei der Formularprüfung

Beitrag lesen

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.