• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Dringend: JavaScript Formularprüfung bricht nicht ab

wers1

New member
Hallo liebe Gemeinde,

ich habe einen kleinen Code der ein Formular prüft (siehe unten). Problem dabei ist, dass trotz return false der Browser das Formular abschickt und auf die nächste Seite weiterleitet :(

Ich vermute ich habe tatsächlich nur eine kleine Zeile vergessen, komme aber seit mehreren Stunden nicht drauf und im idealfall sollte das in einer halben Stunde funktionieren :( :( :(

Eingebunden ist das Skript per onclick im Submit-Button.

HTML:
		<script type="text/javascript">
function chkFormular () {
  if (document.Formular.Vorname.value == "") {
    alert("Geben Sie bitte Ihren Vorname ein.");
    document.Formular.Vorname.focus();
    return false;
  }
  if (document.Formular.Nachname.value == "") {
    alert("Geben Sie bitte Ihren Nachname ein.");
    document.Formular.Nachname.focus();
    return false;
  }
  if (document.Formular.Email.value.indexOf("@") == -1) {
    alert("Geben Sie bitte Ihren Email ein.");
    document.Formular.Email.focus();
    return false;
  }
  if (document.Formular.Telefon-Nummer.value == "") {
    alert("Geben Sie bitte Ihren Kontakt Telefonnummer ein.");
    document.Formular.Telefon-Nummer.focus();
    return false;
  }
    if (document.Formular.Strasse.value == "") {
    alert("Geben Sie bitte Ihren Straße ein.");
    document.Formular.Strasse.focus();
    return false;
  }
  if (document.Formular.PLZ.value == "") {
    alert("Geben Sie bitte Ihre Postleitzahl ein.");
    document.Formular.PLZ.focus();
    return false;
  }
    if (document.Formular.Ort.value == "") {
    alert("Geben Sie den Ort ein.");
    document.Formular.Ort.focus();
    return false;
  }
    if (document.Formular.KV.value == "") {
    alert("Geben Sie bitte den Namen Ihrer Krankenversicherung an.");
    document.Formular.KV.focus();
    return false;
  }
}
</script>

Einen riesen Dank im Voraus
 
Es wäre schon vielleicht auch sinnvoll, wenn du dein HTML zeigst...
zum Problem: du musst natürlich den return-Wert auch verwenden. Hast du denn den Skriptaufruf wie folgt eingebaut?
HTML:
<input type="submit" value="Absenden" onclick="return chkFormular()">
Ich vermute, du hast da einfach nur onclick="chkFormular()"...
Ansonsten klappt's nämlich: JavaScript: return false in Formular
 
Zuletzt bearbeitet:
Hey Julian,

danke für die schnelle Antwort.

Ich habe das Formular genau so in den Submit Button eingebaut:

HTML:
<a href="#" class="button form-button-submit" onclick="return chkFormular()">Absenden</a>

Den beim Formular einzubinden hatte nicht geklappt :(
Aber daran kann es doch eigentlich nicht liegen, oder?

Und genau das macht mich so verzweifelt - alle Muster Codes sagen das gleiche und bei denen funktionierts :(
Da muss doch irgendwo ein Zeichen fehlen, bei dem ich zu blind bin das nach 10 maliger Kontrolle zu finden.
 
Zeig bitte mal dein ganzes HTML oder gib uns einen Testlink!
 
Nimm hier mal das Leerzeichen nach dem Funktionsnamen raus, also so:
Code:
function chkFormular() {
 
gesagt, getan. Leider hat das nichts geändert, das Formular springt immernoch weiter. Aber immerhin etwas sauberer ist's jetzt ;)
 
Leerzeichen vor oder nach Klammern sind JS total egal - die werden komplett ignoriert....

Dann: ein <a href="http://forum.jswelt.de/javascript/javascript/..."> ist kein Submit-Button, sondern ein Link, der einfach auf eine neue Seite leitet und dabei keinerlei Eingaben, die im Formular getätigt wurden, absendet. Ein <input type="submit"> oder <button> ist ein Submit-Button!

Aber das ist hier nicht dein Problem. Dein Problem ist, dass die Variable "Nummer" nicht definiert ist... denn "document.Formular.Telefon-Nummer.value" greift nicht auf das Element "Telefon-Nummer" des Formulars zu, sondern auf das Element "Telefon" und zieht von ihm die Eigenschaft "value" der Variable "Nummer" ab... da "Nummer" nicht definiert ist, kommt es zu einem Fehler (den man auch in der Fehlerkonsole sieht).

Das Ganze kannst du lösen, indem du Schema 4 verwendest:
Code:
  if (document.Formular["Telefon-Nummer"].value == "") {
PS: href="#" ist jetzt nicht dein Ernst?
 
Hey kkapsner,

riesen dank für die Antwort. Der Fehler kommt jetzt nicht mehr. Geändert hat's leider auch nichts an dem Absendeproblem. Die <a>'s werden durch ein Script zu submit Buttons. Ist in dem template welches ich verwende so gelöst wurden - ich habs aber auhc schon mit Submit-Buttons versucht, das hat zum gleichen Ergebnis geführt :(
 
Die <a>'s werden durch ein Script zu submit Buttons.
Äh... nein... die werden vielleicht so angezeigt, aber es sind immer noch <a>s. Und dein komisches Skript (config.js), dass das Formular absendet, wenn man darauf klickt, kümmert sich einfach nicht um return false und du kannst das Abschicken auch nicht verhindern (denn ein .submit() aus einem JS triggert nicht das onsubmit-Event). Warum verwendest du das überhaupt? Ist doch total unnötig...
 
kurz gesagt: aus Unwissenheit ;).Habe es jetzt als Submit Button gemacht - ändert am Design auch nichts solange ich ebendiese Klasse eintrage. Jetzt wird auf die Klasse ja extra noch per JS der Submit-Button getriggert, kann es sein, dass der Submit im Script alles kaputt macht? Eigentlich sollte es doch per Submit gehen.
 
Zurück
Oben