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

Return false verhindert kein Absenden des Formulars

csigg

Neues Mitglied
Hallo,

ich habe ein Formular, bei dem ich vor dem Absenden gerne prüfen würde, ob gewisse Felder gesetzt sind.
Nun hab ich mir mithilfe von selfhtml folgendes gebaut:
HTML:
<html>
<head>
<title>Reklamation</title>
<meta name="author" content="Christian Sigg">
<script type="text/javascript">
function chkFormular () {
  if (document.Formular.kundennummer.value == "") {
    alert("Bitte Ihre Kundennummer eingeben!");
    document.Formular.User.focus();
    return false;
  }
}
</script>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<h2>Adresse</h2>
<table border="0" width="400">
<form method="post" action="de_rma2.php" onsubmit="return chkFormular()" name="Formular">
 <tr>
     <td colspan="2"><font size="-1">Kundennummer:</font><br />
         <font size="-3"><input type="Text" name="kundennummer" size="50" maxlength="15" style="text-size:7px;"></font>
         </td>
</tr>
<tr>
     <td colspan="2"><font size="-1">Vorname, Name:</font><br />
         <input type="Text" name="name" size="50" maxlength="50">
         </td>
</tr>
<tr>
     <td colspan="2"><font size="-1">Strasse:</font><br />
         <input type="Text" name="strasse" size="50" maxlength="50">
         </td>
</tr>
<tr>
    <td colspan="2"><font size="-1">PLZ/Ort:</font><br />
         <input type="Text" name="ort" size="50" maxlength="50">
         </td>
</tr>
<tr>
    <td colspan="2"><font size="-1">Land:</font><br />
         <input type="Text" name="land" size="50" maxlength="50">
         </td>
</tr>
<tr>
     <td colspan="2"><font size="-1">Telefon:</font><br />
         <input type="Text" name="telefon" size="50" maxlength="50">
         </td>
</tr>
<tr>
    <td colspan="2"><font size="-1">Email:</font><br />
         <input type="Text" name="email" size="50" maxlength="50">
         </td>
</tr>
<tr>
    <td colspan="2">&nbsp;</td>
</tr>
<tr>
    <td colspan="2"><h4>Bankverbindung (optional, wichtig bei Rückgaben (die Kontodaten werden von uns nicht weitergegeben)</h4></td>
</tr>
<tr>
     <td colspan="2"><font size="-1">Kreditinstitut:</font><br />
         <input type="Text" name="bank" size="50" maxlength="50">
         </td>
</tr>
<tr>
    <td colspan="2"><font size="-1">Bankleitzahl:</font><br />
         <input type="Text" name="blz" size="50" maxlength="50">
         </td>
</tr>
<tr>
    <td colspan="2"><font size="-1">Kontonummer:</font><br />
         <input type="Text" name="kontonr" size="50" maxlength="50">
         </td>
</tr>
<tr>
    <td colspan="2"><font size="-1">Kontoinhaber:</font><br />
         <input type="Text" name="k_inhaber" size="50" maxlength="50">
         </td>
</tr>
<tr>
         <td colspan="2">&nbsp;</td>
</tr>
<tr>
 <td colspan="2"><input type="Submit" name="abschicken" value="Weiter"> </td>
</tr>
</form>
</table>

Wenn ich jetzt dass Formular mit leeren Kundenummer abesenden will, kommt zwar die Meldung, danach werde ich aber dennoch auf die nächste Seite weitergeleitet.
Wenn ich bei dem onSubmit des Formulars testweise return false eingebe, dann wird dass Formular nicht abegesendet.
Kann mir hier vielleicht jemand sagen was ich an der Stelle verkehrt mache?
 
Die JavaScript-Konsole sagt dazu:

Fehler: document.Formular.User is undefined
Zeile: 9

Also: du hast das Feld falsch referenziert. Dadurch entsteht ein JavaScript-Fehler und die JavaScript-Funktion kann kein false mehr zurückgeben. Änder

Code:
document.Formular.User.focus();

in

Code:
document.Formular.kundennummer.focus();

Und merke: immer erst die JavaScript-Konsole anschauen wenn es ein JavaScript-Problem gibt.
 
Zurück
Oben