Martin Moeller: Allgemeinen Formular checker

Hallo
ich möchte einen Formularchecker haben der alle Elemente in einem
<form> Tag überprüft ob etwas darinsteht ohne jedes einzele Element
 der form abzufragen.

Also nicht:
if
(document.formular.name.value=="")
alert("Bitte überprüfe deinen Namen!");
}
if(document.formular.email.value=="")
alert("Bitte überprüfe deinen Email!");
}
....

sondern:

if(document.formular.Alle Elemente der <form>.value=="")
alert("Eingaben sind nicht vollständig");
}

Der Formularchecker soll nämlich in hunderte von bereits erstellten Formularen eingefügt werden und da will ich nicht jedes einzelne element eingeben, würde zu lange dauern.

  1. Hi,

    ich möchte [...]
    Der Formularchecker soll [...]

    gut. Was ist nun Dein Problem?

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Ich will einen allgemeinen formularchecker, den ich in jede html seite mit einem <form> tag einbinden kann, ohne jedes einzelene element der <form> anzugeben.
      er soll also alle Felder überprüfen ob etwas drinsteht oder nicht
      (text, textarea, checkbox....)

      1. Hi,

        Ich will [...]

        ich habe nicht gefragt, was Du willst, sondern was Dein Problem ist.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
      2. hi,

        willst du dein problem diskutieren - oder lieber frage-antwort-pingpong spielen?

        gruss,
        wahsaga

  2. <script language="JavaScript" type="text/javascript">
    function checkForm(form) {
     for(element in form) {
      element = document.getElementsByName(element)[0];
      if(element.value.length == 0) {
       alert("Eingaben unvollständig!" + element.name);
       return false
      }
     }
     return true;
    }

    </script>

    Gruß

    Phil

    --
    ich bin ein nachmacher: http://www.eppstein.de
    1. <script language="JavaScript" type="text/javascript">
      function checkForm(form) {
       for(element in form) {
        element = document.getElementsByName(element)[0];
        if(element.value.length == 0) {
         alert("Eingaben unvollständig!" + element.name);
         return false
        }
       }
       return true;
      }

      </script>

      Gruß

      Phil

      kannst mir vielleicht sagen was ich hier ändern sollte damits geht

      <script language="JavaScript" type="text/javascript">
      function checkForm(formular)
      {
       for(element in form)
       {
        element = document.getElementsByName(element)[0];
        if(element.value.length == 0)
        {
         alert("Eingaben unvollständig!" + element.name);
         return false
        }
       }
       return true;
      }

      </script>
      <form method="post" action="mailto:Heyer@web.de" name="formular">
      <input type="text" name="name" ><br /><br />
      <input type="submit" name="senden" value="senden" onclick="checkForm()">
      </form>

      1. kannst mir vielleicht sagen was ich hier ändern sollte damits geht

        <script language="JavaScript" type="text/javascript">
        function checkForm(formular)
        {
         for(element in form)
         {
          element = document.getElementsByName(element)[0];
          if(element.value.length == 0)
          {
           alert("Eingaben unvollständig!");
           return false
          }
         }
         return true;
        }

        </script>
        <form method="post" onSubmit="return checkForm(this);" action="mailto:Heyer@web.de" name="formular">
        <input type="text" name="name" ><br /><br />
        <input type="submit" name="senden" value="senden"></form>

        Gruß

        Phil

        --
        ich bin ein nachmacher: http://www.eppstein.de
        1. Hast du das ausprobiert.den bei mir sagt er das "  'form' in zeile

          for(element in form)
          undefiniert sei.

          Gruß

          Phil

    2. function checkForm(form) {
       for(element in form) {
        element = document.getElementsByName(element)[0];
        if(element.value.length == 0) {
         alert("Eingaben unvollständig!" + element.name);
         return false
        }
       }
       return true;
      }

      Neben dem, dass es nicht funktioniert, würde es schön alle Formularelemente (buttons, checkboxen, Listen usw) prüfen, auch wenn diese keinen Value haben können.

      Struppi.

      1. Hallo Struppi,

        er wollte einen allgemeinen checker, der ALLE formularfelder überprüft.

        Natürlich hätte ich auch ein if(feld.type=='text') oder was auch imemr einbauen können, aber wieso sollte ich? wenn das script einen button überprüft, passiert ja nix ;)

        Und nebenbei bemerkt, es funktioniert... ;)

        Gruß

        Phil

        --
        ich bin ein nachmacher: http://www.eppstein.de
        1. er wollte einen allgemeinen checker, der ALLE formularfelder überprüft.

          Natürlich hätte ich auch ein if(feld.type=='text') oder was auch imemr einbauen können, aber wieso sollte ich? wenn das script einen button überprüft, passiert ja nix ;)

          genau, das Formular wird nicht abgeschickt, wenn das Formular z.b. eine optionsliste enthält (<select name="..."> <option> </select> hat keinen Wert) selbst wenn in der Liste was ausgewählt wird (zumindest in Browsern, im IE nicht).

          Und nebenbei bemerkt, es funktioniert... ;)

          Das ist für mich nicht funktionieren.

          Darüber hinaus frag ich mich ob das:
          for(element in form) {
          element = document.getElementsByName(element)[0];
          funktioniert?

          Ich hab hier gerade keinen Browser, der document.getElementsByName kann, aber einerseits gehst du mit for(element in form) bereits alle Elemenet durch und anderseits was soll dann document.getElementsByName(element)[0]; liefern?

          element ist doch ein Formularelement und nicht der Name des Elementes. Also selbst wenn es funktioniert (dass bedeutet wahrscheinlich, das in getElements.. element.toString() aufgerufen wird) wäre es ziemlich überflüssig, da du auf element ja schon zugreifen kannst.

          Struppi.

          1. genau, das Formular wird nicht abgeschickt, wenn das Formular z.b. eine optionsliste enthält (<select name="..."> <option> </select> hat keinen Wert) selbst wenn in der Liste was ausgewählt wird (zumindest in Browsern, im IE nicht).

            Falsch, getestet in Firefox ;-)

            Darüber hinaus frag ich mich ob das:
            for(element in form) {
            element = document.getElementsByName(element)[0];
            funktioniert?

            an dieser stelle geb ich dir recht, die zeile is überflüssig...

            ertappt :P

            Gruß

            Phil

            --
            ich bin ein nachmacher: http://www.eppstein.de
            1. Dann verusch mal dieses Formular abzuschicken:
              http://home.arcor.de/struebig/js/test/test_form.html

              ich bekomm (IE 4) eine Latte von nicht ausgefüllten "Feldern". Deine Methode funktioniert nicht!

              Struppi.

              1. Richtig, im ie funktioniert sie nicht, aber ich dachte, das ganze ist für einen browser, nich für nen bug ;-)

                hey, nciht alles so ernst nehmen... ;-)

                Gruß

                Phil

                --
                ich bin ein nachmacher: http://www.eppstein.de
  3. Hallo Phil,

    bevor Du beginnst, diversen Quellcode zu schreiben, solltest Du Dir ein paar Dinge überlegen:
    1.
    Wie kann man alle unterschiedlichen Elemente eines Formulars ansprechen?
    2.
    Können die unterschiedlichen Elemente alle gleich überprüft werden?
    3.
    Gibt es optionale Elemente, die ein User nicht ausfüllen muss?
    4.
    Kann es sein, dass gleiche Elementtypen unterschiedlich überprüft werden müssen?
    5.
    Lohnt die Entwicklung eines "allgemein gültigen" Formularcheckers bei der Anzahl der Elemente?

    Universeller Tip: Nimm Dir mal ein Blatt Papier und skizziere erstmal alles, was Du zu benötigen glaubst. Anschliessend versuche, Schritt für Schritt Dein Konzept umzusetzen...

    ;o) bluntburn

    --
    jeden Tag 'ne Currywurst...
    1. Hallo Phil,

      Hallo bluntburn

      bevor Du beginnst, diversen Quellcode zu schreiben, solltest Du Dir ein paar Dinge überlegen:

      Ok, bin ganz Ohr...

      Wie kann man alle unterschiedlichen Elemente eines Formulars ansprechen?

      Alle unterschiedlich.

      Können die unterschiedlichen Elemente alle gleich überprüft werden?

      Er wollte ein allgemeines script, dass ALLE elemente auf einen WERT überprüft (value)

      Gibt es optionale Elemente, die ein User nicht ausfüllen muss?

      Davon stand in der Frage nichts, oder hast du da genauere informationen?

      Kann es sein, dass gleiche Elementtypen unterschiedlich überprüft werden müssen?

      Stand auch nichts von drin.

      Lohnt die Entwicklung eines "allgemein gültigen" Formularcheckers bei der Anzahl der Elemente?

      Ich weiß nicht, tut es? es sind nicht meine formulare, ich habe lediglich eine frage beantwortet.. ;-)

      Universeller Tip: Nimm Dir mal ein Blatt Papier und skizziere erstmal alles, was Du zu benötigen glaubst. Anschliessend versuche, Schritt für Schritt Dein Konzept umzusetzen...

      Wow, eine geniale Idee, stift und papier!! wieso bin ich da nicht selber drauf gekommen...
      was hast du gegen die paar zeilen quelltext? sie funktionieren *gg*

      Gruß

      Phil

      --
      ich bin ein nachmacher: http://www.eppstein.de
      1. Hi Phil,

        natürlich habe ich nicht Dich gemeint, sondern Martin...

        ;o) bluntburn

        PS: Papier und Stift sind immer eine geniale Idee.

        --
        jeden Tag 'ne Currywurst...
        1. Hi,

          Was Papier und Bleistift angeht, die gehören zum Standard werkzeug eines jeden webseitenbastlers ;)

          aber wenn du evtl. ein grafiktablett zur verfügung hast, guck dir mal denim an:
          http://guir.berkeley.edu/projects/denim/

          Gruß

          Phil

          --
          ich bin ein nachmacher: http://www.eppstein.de