Felix Riesterer: onsubmit mit zwei Funktionen

Beitrag lesen

Liebe(r) rab3,

Dein Code liest sich ohne Einrückungen extrem schwer! Ich korrigiere das einmal für Dich, da Du offensichtlich noch ein Anfänger bist.

<html lang="de">  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
        <title>Test</title>  
        <script type="text/javascript">
        function chkFormular () {  
            var chkZ = 1;  
            for (i = 0; i < document.forms.formular.elements.jah.value.length; ++i) {  
                if (  
                    document.forms.formular.elements.jah.value.charAt(i) < "0" ||  
                    document.forms.formular.elements.jah.value.charAt(i) > "9"  
                ) {  
                    chkZ = -1;  
                }  
            }  
  
            if (chkZ == -1) {  
                alert("Bitte geben Sie eine Zahl an!");  
                document.forms.formular.elements.jah.focus();  
                return false;  
            }  
        }  
  
        function uebergabe () {  
            parent.jahl = document.forms.formular.elements.jah.value;  
            location.href = "jahr2.html";  
            return false;  
        }
        </script>  
    </head>  
    <body style="color: rgb(255, 255, 0); background-color: rgb(0, 0, 85);" alink="#ff9900" link="#ffcc33" vlink="#ff6600">  
        <div style="text-align: center; font-family: Helvetica,Arial,sans-serif;">  
            <form name="formular" action="" onsubmit="?????">  
                <p>Geben Sie Ihr Alter ein:</p>  
                <p><label for="jah">Alter:</label> <input name="jah" id="jah" size="10" type="text"></p>  
                <p><input value="Weiter &gt;" type="submit"></p>  
            </form>  
            <br>  
        </div>  
    </body>  
</html>

So. Schon besser. Und jetzt entrümpele ich das Ding auf genau das, was wir zur Fehleranalyse wirklich brauchen:

<html lang="de">  
    <head>  
        <title>Test</title>  
        <script type="text/javascript">
        function chkFormular () {  
            var chkZ = 1;  
            for (i = 0; i < document.forms.formular.elements.jah.value.length; ++i) {  
                if (  
                    document.forms.formular.elements.jah.value.charAt(i) < "0" ||  
                    document.forms.formular.elements.jah.value.charAt(i) > "9"  
                ) {  
                    chkZ = -1;  
                }  
            }  
  
            if (chkZ == -1) {  
                alert("Bitte geben Sie eine Zahl an!");  
                document.forms.formular.elements.jah.focus();  
                return false;  
            }  
        }  
  
        function uebergabe () {  
            parent.jahl = document.forms.formular.elements.jah.value;  
            location.href = "jahr2.html";  
            return false;  
        }
        </script>  
    </head>  
    <body>  
         <form name="formular" action="" onsubmit="?????">  
            <p><label for="jah">Alter:</label> <input name="jah" id="jah" size="10" type="text"></p>  
            <p><input value="Weiter &gt;" type="submit"></p>  
        </form>  
    </body>  
</html>

Dazu habe ich mir folgendes Script zusammengebastelt (alles in html):

Nein, Du hast in Deinem HTML-Dokument einen JavaScript-Bereich notiert, in welchem in JavaScript Anweisungen (Funktionen) notiert sind. Aber das ist nur spitzfindig von mir...

Das Formular soll nur, wenn chkFormular() es "zulässt", das Alter an die nächste Seite weiterleiten.

Na, dann schauen wir doch eimal, was Du bisher erreicht hast:

1.) Du hast ein Formular notiert, das keine Ziel-Angabe (action-Attribut) enthält.
    Der Browser wird raten müssen, wohin die Informationen gesendet werden sollen.
    Und deshalb wird er sie an das HTML-Dokument zurück schicken (siehe neue URL).
2.) Du hast Funktionen notiert, die nirgendwo aufgerufen werden.
3.) Du hast im onsubmit-Attribut ungültigen JavaScript-Code notiert, was zu einer Fehlermeldung im Browser führt!

Was man in so einen Eventhandler eintragen kann, <http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onsubmit@title=steht doch in SELFHTML>!

Liebe Grüße aus Ellwangen,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)