Kat: Formularprüfung

Hallo,
ich habe das Problem, dass ich bei einem Formular gerne prüfen würde ob die E-Mail-Adresse fehlerhaft ist.
Das funktioniert soweit, ich habe mir ein Script runtergeladen. Leider ist dort angegeben, dass man das Prüfen mit Hilfe des Formtyps "Button" machen soll. Klappt eigentlich wunderbar, nur leider wird das Formular dann nur geprüft und nicht versandt. Gebe ich den Aufruf zur Prüfung bei dem Formtyp "Submit" ein, werden die Daten verschickt aber nicht geprüft.

Hier die Zeile:

<input type="submit" value=" Absenden " onClick="validate(document.Antworten.txtemail.value);">

WIe schaffe ich es, dass er gleichzeitig prüft und abschickt?
Vielen Dank für eure Hilfe!!!!!!!!!!
Kat

  1. hi

    WIe schaffe ich es, dass er gleichzeitig prüft und abschickt?

    das problem ansich verstehe ich... - nur jetzt stell ich mal dir eine frage. angenommen es _wird_ gleichzeitig geprüft und abgeschickt. wenn nun einer eine fehlerhafte email adresse eingegeben hat, wird sie zwar geprüft, aber auch abgeschickt, an eine die möglicherweise gar nicht existiert. - lass dir das nochmal durch den kopf gehen.

    p.s. ich würd das ganze überdies serverseitig lösen

    lg
    azok

    --
    Murphys Law: "Alles Schöne im Leben ist entweder illegal, ungesetzlich oder es macht dick."
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:( n4:° ss:| de:] js:| ch:( sh:) mo:) zu:)
  2. Hi,

    WIe schaffe ich es, dass er gleichzeitig prüft und abschickt?
    Vielen Dank für eure Hilfe!!!!!!!!!!

    Wenn Validierung == falsch
    dann form.submit = false

    Deine validate() funtion sollt entsprechend false|true zurückgeben

    onClick="this.form.submit=validate(document.Antworten.txtemail.value);"

    Viel Spaß,
    CirTap

    --
    You can have programs written fast, well, and cheap, but you only get to pick 2 ...
    "Jeder der noch keinen Fehler gemacht hat, hat noch nie etwas Neues ausprobiert." (A. Einstein)
  3. Hallo,

    WIe schaffe ich es, dass er gleichzeitig prüft und abschickt?

    Indem Du die Prüfung onsubmit des Formulars startest. Wenn die onsubmit-Funktion true zurückliefert, wird abgesendet, liefert sie false zurück, dann nicht. Siehe: http://de.selfhtml.org/javascript/beispiele/formulareingaben.htm.

    viele Grüße

    Axel

    1. Hallo,

      WIe schaffe ich es, dass er gleichzeitig prüft und abschickt?
      Indem Du die Prüfung onsubmit des Formulars startest. Wenn die onsubmit-Funktion true zurückliefert, wird abgesendet, liefert sie false zurück, dann nicht. Siehe: http://de.selfhtml.org/javascript/beispiele/formulareingaben.htm.

      viele Grüße

      Axel

      Okay, aber was ist jetzt noch falsch?

      <script LANGUAGE =" JavaScript">

      <!--

      function checkfield(){

      var T1 = document.Antworten.txtvorname,
             T2 = document.Antworten.txtemail,

      if (T1.value == "") {
            alert ("Du hast vergessen, deinen Vornamen einzutragen!");
            T1.select();
            T1.focus();
            return false;
         }

      if (T2.value.indexOf('@') == -1) {
            alert ("Deine E-Mail-Adresse stimmt nicht!");
            T2.select();
            T2.focus();
            return false;
         }

      else {
         return true;
         }
      }

      //-->

      </SCRIPT>

      .....
      ....
      ....

      <form method="post" action="xxx" name="Antworten" onSubmit="return checkfield()">
      <p>Dein Vorname:<br>
      <input name="txtvorname" type="text" size="20" maxlength="30">
      </p>
      <p>Deine E-Mail:<br>
      <input name="txtemail" type="text" size="25" maxlength="30">
      <p align="left">Nur vollständig ausgefüllte Formulare mit deiner richtigen E-Mail-Adresse können beantwortet werden. </p>
      <input type="submit" value=" Absenden ">
      <input type="reset" value=" Abbrechen ">

      Ich verstehe nicht, was daran falsch ist bzw. warum das nicht klappt. DIe Daten werden immer abgesendet, auch wenn kein Inhalt vorhanden ist.
      Viele Grüße
      Kat

      1. Hallo,

        Okay, aber was ist jetzt noch falsch?
        <script LANGUAGE =" JavaScript">

        ^Doppelfehler: Das Attribut type ist zwingend notwendig. Aber wenn Du schon das Attribut language setzt, dann mit dem Inhalt "JavaScript" und _nicht_ mit " JavaScript".

        <script type="text/javascript">

        <!--

        function checkfield(){

        var T1 = document.Antworten.txtvorname,
               T2 = document.Antworten.txtemail,

        ^Fehler: Bezeichner erwartet. Nach dem Komma sollte noch was kommen?

        var T1 = document.Antworten.txtvorname,
                T2 = document.Antworten.txtemail;

        if (T1.value == "") {
              alert ("Du hast vergessen, deinen Vornamen einzutragen!");
              T1.select();
              T1.focus();
              return false;
           }

        if (T2.value.indexOf('@') == -1) {
              alert ("Deine E-Mail-Adresse stimmt nicht!");
              T2.select();
              T2.focus();
              return false;
           }

        else {
           return true;
           }
        }

        //-->

        </SCRIPT>

        <form method="post" action="xxx" name="Antworten" onSubmit="return checkfield()">
        <p>Dein Vorname:<br>
        <input name="txtvorname" type="text" size="20" maxlength="30">
        </p>
        <p>Deine E-Mail:<br>
        <input name="txtemail" type="text" size="25" maxlength="30">
        <p align="left">Nur vollständig ausgefüllte Formulare mit deiner richtigen E-Mail-Adresse können beantwortet werden. </p>
        <input type="submit" value=" Absenden ">
        <input type="reset" value=" Abbrechen ">

        Ich verstehe nicht, was daran falsch ist bzw. warum das nicht klappt. DIe Daten werden immer abgesendet, auch wenn kein Inhalt vorhanden ist.

        Nein. Dein Code wird erst gar nicht abgearbeitet, weil language=" JavaScript" und type fehlt. Wird das berichtigt, dann wird der Fehler "Bezeichner erwartet" ausgeworfen (siehe oben). Wird dies auch noch berichtigt, dann läuft es so, wie Du wahrscheinlich willst.

        viele Grüße

        Axel

        1. Hallo Axel,
          das sind wirklich blöde Fehle. Aber es läuft jetzt. Danke!
          Kat