onSubmit problem

Hi all :smiley:
und schon wieder habe ich ein Problem :frowning:
Also es klappt jetzt alles doch wenn ich das Dokument abschicke ohne eine Volk auszuwählen, kommt zwar die Meldung „Bitte Volk auswählen“, aber er läd trotzdem die Verarbeitungs php datei obwohl dort return false; steht
Hier der Code
[PHP]

Registrierung function CheckData() { if (document.reg.volk.options.selectedIndex == 0) { alert("Bitte wählen sie ein Volk"); return false; } else { return true; }
        }
      function checkValidity()
        {
            with(document.reg)
            {
                if ((username.value != '') && (password.value != '') && (passwordrepetition.value != '') && (email.value != '') && (emailrepetition.value != '') && (secretquestion.value != ''))
                {
                    abschicken.disabled = '';
                }
                else
                {
                    abschicken.disabled = 'disabled';
                }
            }
        }
    </script>
<?php //Im Fehlerfalle $systemerror = $HTTP_GET_VARS['error']; if ($systemerror == "noconnect") { print("
\nSystemfehler: Keine Verbindung zur Datenbank konnte aufgebaut werden.   Gm's hier   Kontakt   Hilfe

\n"); } else { print(""); } if ($systemerror == "nodb") { print("
\nSystemfehler: Keine Datenbank gefunden. Anmeldung konnte nicht vollbracht werden.   Gm's hier   Kontakt   Hilfe

\n"); } else { print(""); } if ($systemerror == "nowrite") { print("
\nSystemfehler: Daten konnten nicht in die Datenbank geschrieben werden. Anmeldung konnte nicht vollbracht werden.   Gm's hier   Kontakt   Hilfe

\n"); } else { print(""); } //Benutzerdaten $firstname = $HTTP_GET_VARS['firstname']; $name = $HTTP_GET_VARS['name']; $birthyear = $HTTP_GET_VARS['birthyear']; //Accountdaten $username = $HTTP_GET_VARS['username']; $race = $HTTP_GET_VARS['race']; $email = $HTTP_GET_VARS['email']; $password = $HTTP_GET_VARS['password']; $secretquestion = $HTTP_GET_VARS['secretquestion']; ?> <?php print(""); ?> <?php print(""); ?> <?php print(""); ?> <?php print(""); ?>
Benutzerinformationen
Vorname:
Nachname:
Geburtsjahr:
Account Daten
Name des Accounts:
Volk: Volk bestimmen Menschen Zwerge Elfen Orks Untote Dunkelelfen Elementare    info
Email:
Email (Wiederholung):
Passwort:
Passwort (Wiederholung):
Kennungsfrage:
Wichtig: Merken sie sich die Antwort.
[/PHP]

darf man mal darauf hinweisen, das besagte codestellen immer gepostet werden? wenn es um js geht hat in deinem post kein html es sei denn es muss, geschweige denn von php zu sein. und zu deiner frage: nein ich kann dir nicht helfen, ich meine das ist alles richtig.

Entschuldige die habe ich net gewusst^^ :frowning:
Okey schade das du keine Lösung hast ^^
Kann mir sonst einer helfen

vllt liegt es an dem alert. ich meine wenn man auf ok klickt, wird doch true zurückgegeben, und somit weiter ausgeführt… vllt. gibt es in javascript so einen befehl, für das vorzeitige beenden eines scriptes, wie in php den befehl die() oder exit oder break; oder sonstige… ansonsten empfehle ich dir:

forum.js-welt.de ein extra javascript forum

ich habe bei mir auch sowas, vlt hilft es dir weiter
[HTML][/HTML]

function blockSubmit()
{
            CheckData();
            return false;
}

Ansich ganz gut so verhinderst du den submit, aber es wir auch kein Submit abgeschickt, wenn du ein Volk auswählst -.-
EDIT : habs gelöst heir die Lösung für alle:

...
          function CheckData()
            {
             var fail = 1;
             if (document.reg.volk.options.selectedIndex == 0)
               {
                   alert("Bitte Volk auswählen");
                   fail == 1;
               }
             else
               {
                   return true;
                   document.reg.submit();
               }
             if (fail == 1)
               {
                   return false;
               }
               else
               {
                   return true;
               }
            }
          function checkValidity()
            {
                with(document.reg)
                {
                    if ((username.value != '') && (password.value != '') && (passwordrepetition.value != '') && (email.value != '') && (emailrepetition.value != '') && (secretquestion.value != ''))
                    {
                        abschicken.disabled = '';
                    }
                    else
                    {
                        abschicken.disabled = 'disabled';
                    }
                }
            }
        </script>
...
<form action="http://localhost/regwork.php" onSubmit="return CheckData();" method="post" name="reg" id="reg">
...

thx all

mfg web_Spider :smiley:

du könntest auch:

[HTML]
onSubmit=„CheckData();“
[/HTML]

anstatt dem return davor, oder?

Nein, das return wird Benötigt, damit entschieden werden kann, ob das Formular abgeschickt wird oder nicht. Gibt man in der Funktion false zurück, wird es nicht abgeschickt, bei true schon.
Um aber den von der Funktion geliefert Wert and den Handler (onsubmit) weiterzugeben muss ein return vorher geschrieben werden.

achso, ok danke dir. Ich habs nicht so mit js, ich bekomme gerade mal so bbcodes hin. siehe: http://www.all4php.de/greatbook_entwickler/posting.php

Guten Abend.