Danny: Trotz Formcheck - Formular wird abgeschickt - WARUM?

Hallo Zusammen.

Mit folgendem JavaScript (von SelfHTML) überprüfe ich ein Formular:

<script type="text/javascript">
function chkFormular () {
  if (document.Feedback.Name.value == "") {
    alert("Bitte Ihren Namen eingeben!");
    document.Feedback.Name.focus();
    return false;
  }
  if (document.Feedback.Strasse.value == "") {
    alert("Bitte Ihre Anschrift eingeben!");
    document.Feedback.Strasse.focus();
    return false;
  }
  if (document.Feedback.PLZ_Ort.value == "") {
    alert("Bitte Ihre PLZ und Ort eintragen!");
    document.Feedback.PLZ_Ort.focus();
    return false;
  }
  if (document.Feedback.eMail.value.indexOf("@") == -1) {
    alert("Keine E-Mail-Adresse!");
    document.Feedback.eMail.focus();
    return false;
  }

}
</script>

Hiermit rufe ich es dann auf:

<form id="feedback" method="post" name="Feedback"  action="feedback.php" onsubmit="return chkFormular()">

Der erste Alert kommt dann auch, doch sowie ich diesen bestätige (OK klicke), wird das Formular trotzdem versandt und die False-Angabe offenbar ignoriert.

Woran liegt das denn bitte?

Ich habe dieses JavaScript schon auf diversen Seiten eingesetzt, es hat immer funktioniert. Nur diesmal will es einfach nicht seine Funktion erfüllen.

Ich bitte um Antworten, die sich auf dieses Script beziehen und keine, die einem sagen, JS Formcheck sei unnütz o.ä.

Danke im Voraus für jede Hilfe

  1. Hi Danny,

    <form id="feedback" method="post" name="Feedback"  action="feedback.php" onsubmit="return chkFormular()">

    Du definierst hier ein action, welches auch ausgeführt wird. Ich meine, du musst action leer lassen und nur im Erfolgsfall befüllen.

    Ich weiß es leider nicht genau.

    ciao
    romy

    1. <form id="feedback" method="post" name="Feedback"  action="feedback.php" onsubmit="return chkFormular()">
      Du definierst hier ein action, welches auch ausgeführt wird. Ich meine, du musst action leer lassen und nur im Erfolgsfall befüllen.

      nein auf keinen Fall, damit wird das Formular u.U. unbrauchbar.

      Ich weiß es leider nicht genau.

      stimmt ;-)

      Struppi.

      --
      Javascript ist toll (Perl auch!)
  2. Hi,

    Der erste Alert kommt dann auch, doch sowie ich diesen bestätige (OK klicke), wird das Formular trotzdem versandt und die False-Angabe offenbar ignoriert.

    Moeglicherweise eine fehlerhafte Referenz beim focus(), die einen Javascriptfehler verursacht. Das Script bricht ab und liefert kein false zurück: das Formular wird versandt.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
  3. <script type="text/javascript">
    function chkFormular () {

    Du solltest besser die Referenz auf das fomrular übergeben, dann wäre das nicht passiert.

    function chkFormular (form) {
       if (form.Name.value == "") {
         alert("Bitte Ihren Namen eingeben!");
         form.Name.focus();
         return false;
       }
    ...

    Hiermit rufe ich es dann auf:

    <form id="feedback" method="post" name="Feedback"  action="feedback.php" onsubmit="return chkFormular()">

    Es gibt also kein Formular mit den Namen feedback.

    Aber mach es besser so:
    <form method="post" action="feedback.php" onsubmit="return chkFormular(this)">

    Dann kannst du dir auch den Namnen und die ID sparen.

    Der erste Alert kommt dann auch, doch sowie ich diesen bestätige (OK klicke), wird das Formular trotzdem versandt und die False-Angabe offenbar ignoriert.

    Woran liegt das denn bitte?

    Das du dir die Fehlermeldung des Browsers nicht anschaust.

    Ich bitte um Antworten, die sich auf dieses Script beziehen und keine, die einem sagen, JS Formcheck sei unnütz o.ä.

    Wenn er nicht auch Serverseitig erfolgt, dann ist er es.

    Struppi.

    --
    Javascript ist toll (Perl auch!)