Chester Copperpott: Javascript Fehlermeldungen

Beitrag lesen

Hallo!

Ich hoffe ihr könnt mir helfen. Ich sitze gerade zum ersten mal an Javascript, aber einige Grundprinzipien der Programmierung sind mir durchaus bekannt... Es geht um das checken von Formularinhalten. Das Problem ist, dass nicht Schritt für Schritt eine einzelne Fehlermeldung für jedes Feld kommen soll, sondern eine einzige Fehlerbox, die alle Fehler auf einmal ausgibt. Die Funktion checkmail soll aufgerufen werden, wenn man in das mailfeld geklickt hat und sie soll eine Fehlermeldung schon beim rausklicken aus dem Mailfeld anzeigen. Das funktioniert soweit auch. Am Ende soll beim send button nochmal alles geprüft werden. Das funktioniert allerdings nicht. Der Browser will immer abschicken und gibt keine Fehlermeldung aus. Es scheint also, als würde die Funktion checkall() gar nicht aufgerufen werden. Ich verstehe nicht woran das liegt... Ich habe folgenden Quelltext geschrieben:

<html>
<head>
<title>Formular Übung</title>
<meta name="author" content="Chester Copperpott">
<meta name="editor" content="html-editor phase 5">
<script language="JavaScript1.2" type="text/javascript">
    var a,b,c = 0;
    var fehler = "";
    function checkmail(mail)
    {
        fehler = ""
        if(mail == "" || Formular.mail.value.indexOf("@") == -1)
        {
            b = 1;
            fehler = fehler + "Bitte E-Mail-Adresse angeben!\n";
            return Fehler();
        }
    }

function checkall()
    {
        fehler = "";
        if (document.Formular.name.value == "")
        {
            a = 1;
            fehler = fehler + "Bitte geben Sie ihren Namen an!\n";
        }
        if(mail == "" || Formular.mail.value.indexOf("@") == -1)
        {
            b = 1;
            fehler = fehler + "Bitte geben sie eine korrekte E-Mail-Adresse an!\n";
        }
        if (a == 1 || b == 1)
        { return Fehler(); }
        else
        { return true }

}
    function Fehler()
    {
        if (a == 1 || b == 1)
        {
            alert(fehler);
            return false;
        }

}
</script>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">

<form name="Formular" method="post" action="http://de.selfhtml.org/cgi-bin/formview.pl" ENCTYPE="text/plain" onsubmit="return checkall()">
    <div class="formular">
           <h1>Feedback</h1>
           <p><label for="name">Name*</label><input name="name" size="34" type="text" onmouseover="showWMTT('1')" onmouseout="hideWMTT()" /></p>
           <p><label for="mail">E-Mail*</label><input name="mail" size="34" onblur="checkmail(this.value)" type="text" onmouseover="showWMTT('1')" onmouseout="hideWMTT()" /></p>
           <input type=submit value="Senden">
           <input type=reset value="Reset">
    </div>
    </form>
</body>
</html>