• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

onSubmit problem

Status
Für weitere Antworten geschlossen.

Web_spider

Neues Mitglied
Hi all :D
und schon wieder habe ich ein Problem :(
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:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
       <title>Registrierung</title>
        <script language="javascript" type="text/javascript">
          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("<div style=\"height: 50px; width: 430px; border: 2px gold outset; background-color: red; color: white;\">\n<b>Systemfehler: </b>Keine Verbindung zur Datenbank konnte aufgebaut werden. &nbsp;&nbsp;<a href=\"#\">Gm's hier</a>&nbsp;&nbsp; <a href=\"#\">Kontakt</a>&nbsp;&nbsp; <a href=\"#\">Hilfe</a></div><br />\n");
}
else
{
    print("");
}
if ($systemerror == "nodb")
{
    print("<div style=\"height: 50px; width: 430px; border: 2px gold outset; background-color: red; color: white;\">\n<b>Systemfehler: </b>Keine Datenbank gefunden. Anmeldung konnte nicht vollbracht werden. &nbsp;&nbsp;<a href=\"#\">Gm's hier</a>&nbsp;&nbsp; <a href=\"#\">Kontakt</a>&nbsp;&nbsp; <a href=\"#\">Hilfe</a></div><br />\n");
}
else
{
    print("");
}
if ($systemerror == "nowrite")
{
    print("<div style=\"height: 60px; width: 430px; border: 2px gold outset; background-color: red; color: white;\">\n<b>Systemfehler: </b>Daten konnten nicht in die Datenbank geschrieben werden. Anmeldung konnte nicht vollbracht werden. &nbsp;&nbsp;<a href=\"#\">Gm's hier</a>&nbsp;&nbsp; <a href=\"#\">Kontakt</a>&nbsp;&nbsp; <a href=\"#\">Hilfe</a></div><br />\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'];
?>

</head>
<body onload="javascript:document.reg.abschicken.disabled = 'disabled';">
<form action="http://localhost/regwork.php" method="post" onSubmit="javascript: CheckData();" name="reg" id="reg">
    <table border="1" style="background-image: url('bgimages/mainbg.jpg'); border: 2px outset gold;">
        <tr>
            <td colspan="2" align="center"><b>Benutzerinformationen</b></td>
        </tr>
        <tr>
            <td width="200">Vorname: </td>
            <?php
            print("<td><input type=\"text\" name=\"vorname\" id=\"vorname\" size=\"30\" tabindex=\"1\" value=\"".$firstname."\" /></td>");
            ?>
        </tr>
        <tr>
            <td width="200">Nachname: </td>
            <?php
            print("<td><input type=\"text\" name=\"nachname\" id=\"nachname\" size=\"30\" tabindex=\"2\" value=\"".$name."\" /></td>");
            ?>
        </tr>
        <tr>
            <td width="200">Geburtsjahr: </td>
            <?php
            print("<td><input type=\"text\" name=\"gebjahr\" id=\"gebjahr\" size=\"10\" tabindex=\"3\" value=\"".$birthyear."\" /></td>");
            ?>
        </tr>
        <tr>
            <td colspan="2" align="center"><b>Account Daten</b></td>
        </tr>
        <tr>
            <td width="200"><label for="username">Name des Accounts: </label></td>
            <?php
            print("<td><input type=\"text\" name=\"username\" id=\"username\" size=\"30\" tabindex=\"4\" onkeyup=\"javascript:checkValidity();\" value=\"".$username."\" /></td>");
            ?>
        </tr>
        <tr>
            <td width="200"><a href="" style="color: red;">Volk: </a></td>
            <td><select name="volk" id="volk" tabindex="5">
            <option value="choose" selected="selected">Volk bestimmen</option>
            <option>Menschen</option>
            <option value="Zwerge">Zwerge</option>
            <option value="Elfen">Elfen</option>
            <option value="Orks">Orks</option>
            <option value="Untote">Untote</option>
            <option value="Dunkelelfen">Dunkelelfen</option>
            <option value="Elementare">Elementare</option>
            </select>
            &nbsp;&nbsp;&nbsp;<a href="#" style="color: red;">info</a>
            </td>
        </tr>
                <tr>
            <td width="200"><label for="email">Email: </label></td>
            <td><input type="text" name="email" id="email" size="40" tabindex="6" onkeyup="javascript:checkValidity()" /></td>
        </tr>
        <tr>
            <td width="200"><label for="emailrepetition">Email (Wiederholung): </label></td>
            <td><input type="text" name="emailrepetition" id="emailrepetition" size="40" tabindex="7" onkeyup="javascript:checkValidity()" /></td>
        </tr>
        <tr>
            <td width="200"><label for="password">Passwort: </label></td>
            <td><input type="password" name="password" id="password" size="30" tabindex="8" onkeyup="javascript:checkValidity()" /></td>
        </tr>
        <tr>
            <td width="200"><label for="passwordrepetition">Passwort (Wiederholung): </label></td>
            <td><input type="password" name="passwordrepetition" id="passwordrepetition" size="30" tabindex="9" onkeyup="javascript:checkValidity()" /></td>
        </tr>
        <tr>
            <td width="200"><label for="secretquestion">Kennungsfrage: </label></td>
            <td><input type="text" name="secretquestionask" id="secretquestionask" size="30" value="Was &auml;rgert sie am meisten?" readonly="readonly" /><br />
                <b>Wichtig: Merken sie sich die Antwort.</b><br />
                <input type="text" name="secretquestion" id="secretquestion" tabindex="10" size="30" onkeyup="javascript:checkValidity()" />
            </td>
        </tr>
        <tr>
            <td><input name="abschicken" id="abschicken" type="submit" tabindex="11" value="Abschicken" /></td>
            <td><input name="reset" type="reset" value="Reset" onclick="document.reg.abschicken.disabled='true'" /></td>
        </tr>
    </table>
</form>
</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
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.
 
Werbung:
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:
<form onsubmit="return blockSubmit();">
Code:
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:
Code:
...
          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 :D
 
Zuletzt bearbeitet:
Werbung:
du könntest auch:

HTML:
onSubmit="CheckData();"

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.
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben