Mr.Miyagi: Formular überprüfung

Hi Leute,
ich habe folgendes Problem ich möchte per JavaScript eine Formular überprüfen machen ist auch schon längst fertig.
So jetzt soll eine Liste generiert werden mit den Feldern die noch ausgefüllt werden müssen.
Die Liste soll in einen neu Öffneden Fenster angezeigt werden. Öffnen des Fenster ist auch erledigt.

Aber wie kann ich jetzt die noch zu ausfüllenden Felder übergeben?

Ich bedanke mich schon mal für Eure Hilfe.

MFG
Mr.Miyagi

  1. Die Liste soll in einen neu Öffneden Fenster angezeigt werden. Öffnen des Fenster ist auch erledigt.

    Aber wie kann ich jetzt die noch zu ausfüllenden Felder übergeben?

    In dem Du z.B. aus dem Popup auf das öffnende Fenster zugreifst? Am Ende sind's alles Window-Objekte...

    1. Nabend,

      In dem Du z.B. aus dem Popup auf das öffnende Fenster zugreifst?

      Die andere Richtung ist natürlich auch möglich, denn

      Am Ende sind's alles Window-Objekte...

      ;)

      Aber was hilft eine JS-Überprüfung, wenn ich ohne JS daher komme?

      Bis denne,

      1. Aber was hilft eine JS-Überprüfung, wenn ich ohne JS daher komme?

        Ich denke, der Autor der Frage ist sich darüber im klaren, das Client-Logik lediglich der Convenience dient, und eine Nichtausführung der Client-Logik lediglich zu gestalterischen Einschränkungen für den Nutzer führen sollte, wenn überhaupt. Somit wird er sicherlich eine serverseitige Alternative anbieten. Besonderes bequem macht er sich natürlich, indem er Struts-Validator oder ähnliches einsetzt.

        Deswegen hat er nicht gefragt

        Aber was hilft eine JS-Überprüfung, wenn ich ohne JS daher komme?

  2. moin,

    Hi Leute,
    ich habe folgendes Problem ich möchte per JavaScript eine Formular überprüfen machen ist auch schon längst fertig.

    ersteres ich empfehlen ein neuer update des deinigen deutschs'.
    das geschriebene vor dem absenden noch einmal zu überfliegen, ist wohl kaum zu viel verlangt - weil aus dem kauderwelsch deines ersten satzes wird man nur hellseherisch schlau ..

    So jetzt soll eine Liste generiert werden mit den Feldern die noch ausgefüllt werden müssen.
    Die Liste soll in einen neu Öffneden Fenster angezeigt werden. Öffnen des Fenster ist auch erledigt.

    Aber wie kann ich jetzt die noch zu ausfüllenden Felder übergeben?

    sollen die felder in das neue fenster oder nur ein text, der darauf hinweist, dass diese felder noch ausgefüllt werden sollen?
    bei letzterem reicht auch eine alert()-meldung aus, da braucht man kein popup mehr zu öffnen...

    für beide varianten wäre eine möglichkeit:
    lege vor der prüfung ein js-array an, z.b. var FehltNoch = new Array();

    ergänze alle deine prüfroutinen mit der erweiterung(z.b. "else"), dass sie dann den namen des geprüften feldes in das array "FehltNoch" schreiben.
    z.b. bei prüfung des vornamens:

    if([..]) else ( FehltNoch = "Vorname"; }

    am ende gibst du es aus, indem du die werte zu einem string zusammenfasst:

    var FehlerAusgabe = FehltNoch.join(",\n");

    zu variante 1:
      dein popup hat einen namen. du hast event. so geöffnet:
      FehlerFenster = window.open('','fehler','[..]');

    dann schreibst du die liste in das fenster per:
      FehlerFenster.document.open();
      FehlerFenster.document.write(FehlerAusgabe);
      FehlerFenster.document.close();

    zu variante 2:
      alert(FehlerAusgabe);

    .. das wäre es.

    gruß hein

    1. Danke für dein schnelle Hilfe

    2. hi hein,

      ersteres ich empfehlen ein neuer update des deinigen deutschs'.
      das geschriebene vor dem absenden noch einmal zu überfliegen, ist wohl kaum zu viel verlangt - weil aus dem kauderwelsch deines ersten satzes wird man nur hellseherisch schlau ..

      in diesem falle wäre ich mit dem "anschiss" etwas vorsichtig - der name "mr.miyagi" könnte durchaus auf einen mitmenschen hinweisen, der deutsch nicht als muttersprache hat.
      (alllerdings wäre dann ein hinweis von ihm angebracht gewesen, um solche missverständnisse von vorneherien auszuschliessen ...)

      gruss,
      wahsaga

  3. Hi Leute,
    ich habe das Script jetzt eigentlich soweit fertig.

    Problem:
    Das Array mit im Alert Fenster nicht ausgegebn.

    Kann mir einer sagen, welchen Fehler ich mache

    Schon mal Danke

    MFG
    Mr.Miyagi

    Mein Script:

    //Kontrolle Formular vollständig ausgefüllt

    feldkontrolle=true;
                var ausgabe=true;
                var nicht=new Array("Folgende Felde müssen ausgefüllt werden:");
                var fehler = nicht.join(",\n");

    if(!check_empty(document.emailformular.realname.value))
       {
       feldkontrolle = false;
       var ausgabe=false;
       var neu = nicht.push("Name");
       }

    if(!check_empty(document.emailformular.strasse.value))
       {
       feldkontrolle = false;
       var ausgabe=false;
       var neu = nicht.push("Starße");
       }

    //Leere Felder Ausgeben

    if(ausgabe==false)
       {
       alert(fehler+"Bitte füllen Sie die felder jetzt aus");
       }

    return feldkontrolle;

    }

    //überprüft des Textfeld auf eine eingabe
    function check_empty(eingabe)
    {
             return (eingabe.length > 0); // gibt false zurück wenn leehr
    }

    1. Hallo Mr.Miyagi,

      var ausgabe=true;
      if(!check_empty(document.emailformular.realname.value))
         {
         feldkontrolle = false;
         var ausgabe=false;
         var neu = nicht.push("Name");
         }

      Du setzt hier eine neue Variable "ausgabe", die nur innerhalb des if-Blocks gültig ist. Lass das "var vor "ausgabe=false;" weg, dann sollte es gehen.

      Grüße
      Andreas

      --
      "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."
      (Rich Cook)
      1. Hi Andreas,
        ich habe das jetzt folgender maßen geändert:
        (Nach meinen Kenntnissen habe ich jetzt globale Variablen, so sollte es  möglich sein aus jeder beliebigen Stelle des Programms drauf zugreifen können.)

        var feldkontrolle=true;
                           var ausgabe=true;
                           var nicht=new Array("Folgende Felde müssen    ausgefüllt  werden:");
                           var fehler = nicht.join(",\n");

        function emailkontrolle()
        {
        //Kontrolle Formular vollständig ausgefüllt
        }

        Das Problem hat sich jedoch nicht gelöst, an das "Array nicht" wird der gewünschte String nicht angehangen.

        Nochmal der komplette code:

        var feldkontrolle=true;
                           var ausgabe=true;
                           var nicht=new Array("Folgende Felde müssen ausgefüllt werden:");
                           var fehler = nicht.join(",\n");

        function emailkontrolle()
        {

        //Kontrolle Formular vollständig ausgefüllt

        if(!check_empty(document.emailformular.realname.value))
           {
           feldkontrolle = false;
           ausgabe=false;
           neu = nicht.push("Name");
           }

        if(!check_empty(document.emailformular.strasse.value))
           {
           feldkontrolle = false;
           ausgabe=false;
           neu = nicht.push("Starße");
           }

        //Leere Felder Ausgeben

        if(ausgabe==false)
           {
           alert(fehler+"Bitte füllen Sie die felder jetzt aus");
           }

        return feldkontrolle;

        }

        //überprüft des Textfeld auf eine eingabe
        function check_empty(eingabe)
        {
                 return (eingabe.length > 0); // gibt false zurück wenn leer
        }

        1. hi,

          var nicht=new Array("Folgende Felde müssen ausgefüllt werden:");
          var fehler = nicht.join(",\n");

          hier wendest du also die methode join() auf die bisher im array nicht vorhandenen elemente an - da ist aber erst eins drin.

          weitere elemente fügst du diesem array ja erst in deiner funktion  emailkontrolle() hinzu.
          _nachdem_ dies geschehen ist, must du join() anwenden, damit es die _aktuellen_ inhalte des arrays bearbeitet.

          gruss,
          wahsaga

          1. hi,

            hier wendest du also die methode join() auf die bisher im array nicht vorhandenen elemente an - da ist aber erst eins drin.

            hu, das liest sich etwas komisch ...

            hier wendest du also die methode join() auf die bisher im array namens "nicht" vorhandenen elemente an [...]

            klingt etwas eindeutiger ;-)

            gruss,
            wahsaga

            1. Hi,
              super das war genau mein Fehler.
              was man nicht alles mal übersieht wenn man da alleine vorsitzt.

              Also vielen Dank
              und noch ein schönes Wochenende

              MFG
              Mr.Miyagi

  4. Hi Leute ich habe noch ein kleines Problem

    Wenn beim ersten Versuch das Formular abzusenden, es nicht ausgefüllt würde kommt die Fehlermeldung so wie es sein soll.
    Werden dann brav alle Felder ausgefüllt und erneut auf Absenden geklickt, dann kommt ein leeres Alert Fenster, erst nach einen reload der Seite kann das Formular abgesendet werden.

    Wie kann dieses Problem gelöst werde ?

    Der JS Code:
                       var feldkontrolle=true;
                       var ausgabe=true;
                       var nicht=new Array();

    function emailkontrolle()
    {
    //loescht alle eintraege in dem Array nicht
    if(nicht.length!=0)
       {
       for(var i=0;i=nicht.length;i++)
           {
           nicht.pop();
           }

    }

    //Kontrolle Formular vollstaendig ausgefuellt ist

    if(!check_empty(document.emailformular.realname.value))
       {
       feldkontrolle = false;
       ausgabe=false;
       neu = nicht.push("-->Name");
       }

    if(!check_empty(document.emailformular.strasse.value))
       {
       feldkontrolle = false;
       ausgabe=false;
       neu = nicht.push("-->Starße");
       }

    // Erzeugen des Strings fuer Fehler ausgabe
    var fehler = nicht.join("\n");

    //Leere Felder Ausgeben
    if(ausgabe==false)
       {
       alert("Folgende Felde müssen ausgefüllt werden:\n\n"+fehler+"\n \n Bitte füllen Sie die felder jetzt aus");
       }

    return feldkontrolle;

    }

    //ueberprueft des Textfeld auf eine eingabe
    function check_empty(eingabe)
    {
             return (eingabe.length > 0); // gibt false zurueck wenn leer
    }

    1. Hallo Mr.Miyagi,

      //loescht alle eintraege in dem Array nicht
         for(var i=0;i=nicht.length;i++)

      Muss heißen:
      for(var i=0;i<nicht.length;i++)

      //Leere Felder Ausgeben
      if(ausgabe==false)
         {
         alert("Folgende Felde müssen ausgefüllt werden:\n\n"+fehler+"\n \n Bitte füllen Sie die felder jetzt aus");
         }

      Hier solltest Du "ausgabe" wieder auf true setzen.

      Grüße
      Andreas

      --
      "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."
      (Rich Cook)
      1. Hi Andreas,

        //loescht alle eintraege in dem Array nicht
           for(var i=0;i<nicht.length;i++)

        Dieses muß wie folgt aussehen, ansonsten bleibt das erste Element mit dem Index[0] im Array stehen und wird bei der nächsten fehler Meldung mit Ausgegeben.

        //loescht alle eintraege in dem Array nicht
            for(var i=0;i<=nicht.length;i++)

        Also ich bedanke mich noch mal, hätte da wahrscheinlich noch Stunden vor Gesäßen und so kann ich in Ruhe mein Bier genießen.

        In dem Sinne Prost und noch einen schönen Abend.

        Mr.Miyagi