Hallo,
folgendes Problem:
Wenn ich ohne was einzutippen absenden anklicke, schickt er das Formular ab. Die ersten Fehlermeldungen erscheinen zwar wie gewünscht wenn ich zurück gehe, aber bei der PLZ Prüfung sollte er ja die Sendung des Formulars abbrechen (verweist zum testen einfach auf die index.html als action).
Warum? Welchen Fehler finde ich nicht? Danke schonmal!
HTML:
<form action="index.html" onsubmit="return fcheck();">
...
JAVASCRIPT:
function fcheck()
{
var fields = new Array("Vornamen", "Nachnamen", "Straße", "Postleitzahl", "Ort", "Emailadresse");
// Alle Felder ausgefüllt?
for (var i = 0; i < document.getElementsByTagName("input").length - 1; i++)
{
if (document.getElementsByTagName("input")[i].value == "")
{
document.getElementById("error0" + i).innerHTML = "Bitte " + fields[i] + " eintragen!";
}
else
{
document.getElementById("error0" + i).innerHTML = "";
}
}
// Postleitzahl hat 5 Stellen?
if (document.getElementsByName("PLZ")[0].value.length != 5)
{
document.getElementById("error03").innerHTML = "Bitte geben Sie 5 Zeichen an.";
document.getElementsByName("PLZ")[0].focus();
return false;
}
else
// Postleitzahl ist eine Zahl?
if (isNaN(document.getElementsByName('PLZ')[0].value))
{
document.getElementById("error03").innerHTML = "Bitte geben Sie nur Zahlen ein.";
return false;
}
else
// Postleitzahl enthält kein 'e' (isNaN liest zum Beispiel 444e5 als Zahl)
if (document.getElementsByName("PLZ")[0].value.match(/^[0-9]{5}$/) == null)
{
document.getElementById("error03").innerHTML = "Bitte geben Sie nur Zahlen ein.";
return false;
}
else
{
document.getElementById("error03").innerHTML = "";
return true;
}
}