ally2: Formulareingaben prüfen und steuern

Hallo Zusammen,
hoffe ich stelle meine Anfrage in den richtigen Themenbereich.

Folgendes Problem: In einem Text-Feld landen durch ein anderes Script bestimmte Zahlen, welche ich nun auslesen und in in bestimmt Text-Felder bringen möchte. Unten folgt ein laufendes Sript mit dem ich einzelne Werte in die richtigen Textfelder bringen kann.

Script:

<script language="javascript">
<!--
// Copy
     var text1 = "800";´
     var text2 = "900";
     var text3 = "1000";
      function pruefen()
   {
        if (document.formular.mytext1.value == text1)
  {
          document.formulareingabe.mytext1a.value = text1;
        }
        if (document.formular.mytext1.value == text2)
  {
          document.formulareingabe.mytext2a.value = text2;
        }
        if (document.formular.mytext1.value == text3)
  {
          document.formulareingabe.mytext3a.value = text3;
        }
      }
// -->
</script>
</head>

<body>
<form name="formular">
 <input type="text" name="mytext1" /><br />
</form>

<form name="formulareingabe">
 <input type="text" name="mytext1a" onFocus="pruefen()" /><br />
 <input type="text" name="mytext2a" /><br />
 <input type="text" name="mytext3a" /><br />
</form>
</body>
</html>

Wenn im Text-Feld "mytext1" die Zahl 800 steht, wird diese in das Feld "mytext1a" geschrieben. Steht eine 900 oben wird diese in das Feld "mytext2a" gschrieben. So weit alles in Ordnung. Nun erscheinen im Feld "mytext1" die Zahlen 800 900 1000. Nun sollen diese Zahlen in die Felder "mytext1a" die 800, "mytext2a" die 900 und in "mytext3a" die 1000 geschrieben werden. Das funktioniert nicht. Hat jemand eine Idee?

Schöne Grüße und vielen Dank
 Ally

  1. Script:

    <script language="javascript">

    Keine Ahnung ob dir das schon jemand gesagt hat, aber das language Attribute wird seit einiger Zeit nicht mehr empfohlen (ca. 10 Jahre) und das type Attribut ist seit dieser Zeit ein Pflichattribut.

    Das funktioniert nicht. Hat jemand eine Idee?

    Was heißt funktioniert nicht? Wie lautet die Fehlermeldung?

    Struppi.

    1. Hallo Struppi,

      Script:

      <script language="javascript">

      Keine Ahnung ob dir das schon jemand gesagt hat, aber das language Attribute wird seit einiger Zeit nicht mehr empfohlen (ca. 10 Jahre) und das type Attribut ist seit dieser Zeit ein Pflichattribut.

      Das wusste ich nun nicht. Werde mich schlau machen und auf den neuesten Stand bringen. Vielen Dank.

      Das funktioniert nicht. Hat jemand eine Idee?

      Was heißt funktioniert nicht? Wie lautet die Fehlermeldung?

      »»

      Eine Fehlermeldung gibt es in dem Falle nicht, er macht nix und die Felder bleiben leer. Sobald im Text-Feld "mytext1" die Zahlen 800 900 1000 geschrieben sind, bleiben die Felder unten leer, sobald ich auf das hinterlegte onFocus Feld springe. Er sollte beim onFocus die Zahlen entsprechend auf die Felder unten aufteilen.

      Ally

      Struppi.

  2. Moin

    Nun erscheinen im Feld "mytext1" die Zahlen 800 900 1000.

    gleichzeitig? Diesen Fall hast du bei deinen Abfragen nicht berücksichtigt.

    Gruß
    rfb

    --
    Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
    (Galileo Galilei)
    1. Moin

      Nun erscheinen im Feld "mytext1" die Zahlen 800 900 1000.
      gleichzeitig? Diesen Fall hast du bei deinen Abfragen nicht berücksichtigt.

      Yep, sobald die Zahlen 800 900 1000 dort stehen, soll er sie unten auf die Felder verteilen. Eine Idee?

      Gruß
      rfb

      1. hi,

        Yep, sobald die Zahlen 800 900 1000 dort stehen, soll er sie unten auf die Felder verteilen. Eine Idee?

        http://de.selfhtml.org/javascript/objekte/string.htm

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Moin

          hi,

          Yep, sobald die Zahlen 800 900 1000 dort stehen, soll er sie unten auf die Felder verteilen. Eine Idee?

          http://de.selfhtml.org/javascript/objekte/string.htm

          mit der dort zu findenden Methode split() den Eingabestring in ein Array aufteilen und in einer einfachen for-Schleife für alle Elemente des Arrays deine Abfragen durchführen.

          Gruß
          rfb

          --
          Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
          (Galileo Galilei)
          1. Moin

            hi,

            Yep, sobald die Zahlen 800 900 1000 dort stehen, soll er sie unten auf die Felder verteilen. Eine Idee?

            http://de.selfhtml.org/javascript/objekte/string.htm

            mit der dort zu findenden Methode split() den Eingabestring in ein Array aufteilen und in einer einfachen for-Schleife für alle Elemente des Arrays deine Abfragen durchführen.

            Ich habe mir die split() Methode dort angeschaut, aber leider fehlt mir noch die Übung, um das jetzt bei mir umzusetzen. Stehe am Anfang meines Wissens und vielleicht könnte mir jemand das mal kurz erklären. Das wäre wirklich super. Vielen Dank nochmals.

            Gruß
             Ally

            Gruß
            rfb

            1. Moin

                
              <script type="text/javascript">  
              function pruefen() {  
               var text1 = "800";´  
               var text2 = "900";  
               var text3 = "1000";  
               var eingabe = document.formular.mytext1.value.split(" ");  
               for (var i=0; i<eingabe.length; i++) {  
                if (eingabe[i] == text1) document.formulareingabe.mytext1a.value = text1;  
                if (eingabe[i] == text2) document.formulareingabe.mytext2a.value = text2;  
                if (eingabe[i] == text3) document.formulareingabe.mytext3a.value = text3;  
               }  
              }  
              </script>  
              
              

              Gruß
              rfb

              --
              Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
              (Galileo Galilei)
              1. Moin

                <script type="text/javascript">
                function pruefen() {
                var text1 = "800";´
                var text2 = "900";
                var text3 = "1000";
                var eingabe = document.formular.mytext1.value.split(" ");
                for (var i=0; i<eingabe.length; i++) {
                  if (eingabe[i] == text1) document.formulareingabe.mytext1a.value = text1;
                  if (eingabe[i] == text2) document.formulareingabe.mytext2a.value = text2;
                  if (eingabe[i] == text3) document.formulareingabe.mytext3a.value = text3;
                }
                }
                </script>

                
                >   
                > Gruß  
                > rfb  
                  
                Vielen Dank dafür.. Läuft leider noch nicht.. Vielleicht noch ne kleine Hilfe. So sieht das Script dank der Hilfe von rfb nun insgesamt aus:  
                  
                <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
                <html>  
                <head>  
                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
                <title>Unbenanntes Dokument</title>  
                <script type="text/javascript">  
                function pruefen() {  
                 var text1 = "800";´  
                 var text2 = "900";  
                 var text3 = "1000";  
                 var eingabe = document.formular.mytext1.value.split(" ");  
                 for (var i=0; i<eingabe.length; i++) {  
                  if (eingabe[i] == text1) document.formulareingabe.mytext1a.value = text1;  
                  if (eingabe[i] == text2) document.formulareingabe.mytext2a.value = text2;  
                  if (eingabe[i] == text3) document.formulareingabe.mytext3a.value = text3;  
                 }  
                }  
                </script>  
                  
                </head>  
                  
                <body>  
                <form name="formular">  
                 <input type="text" name="mytext1" /><br />  
                </form>  
                  
                <form name="formulareingabe">  
                 <input type="text" name="mytext1a" onFocus="pruefen()" /><br />  
                 <input type="text" name="mytext2a" /><br />  
                 <input type="text" name="mytext3a" /><br />  
                </form>  
                </body>  
                </html>  
                  
                Er meldet mir nun, sobald ich im onFucus Feld stehe folgende Fehlermeldung:  
                Zeile: 28  
                Zeichen: 1  
                Fehler: Objekt erwartet  
                Code: 0  
                
                
                1. Moin

                  var text1 = "800";´

                  entferne mal hier das allerletzte Zeichen in der Zeile!

                  Gruß
                  rfb

                  --
                  Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
                  (Galileo Galilei)
                  1. Moin

                    var text1 = "800";´
                    entferne mal hier das allerletzte Zeichen in der Zeile!

                    Gruß
                    rfb

                    Oweia.. Schäm.. Super, das war es.. Vielen Dank...

                    Schönen Gruß
                     Ally

                    1. Moin

                      Oweia.. Schäm..

                      dito - mir ist's beim Kopieren auch nicht aufgefallen

                      Gruß
                      rfb

                      --
                      Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
                      (Galileo Galilei)
                      1. Moin

                        Oweia.. Schäm..
                        dito - mir ist's beim Kopieren auch nicht aufgefallen

                        Gruß
                        rfb

                        Eine super Sache..Vielen Dank nochmals. Läuft prima.. :-)
                        Hätte noch eine kleine Frage, wenn ich darf. Gibt es jetzt noch die Möglichkeit in einer neuen Funktion die erste und die letzte Zahl auszulesen und gesondert auszugeben? In meinem Beispiel, die 800 in ein Feld und die 1000 in ein weiteres Feld. Sozusagen, der erste und der letze Wert in dem Feld.

                        1. Moin

                          Gibt es jetzt noch die Möglichkeit in einer neuen Funktion die erste und die letzte Zahl auszulesen und gesondert auszugeben? In meinem Beispiel, die 800 in ein Feld und die 1000 in ein weiteres Feld. Sozusagen, der erste und der letze Wert in dem Feld.

                          auf den ersten Wert greifst du zu mit
                          eingabe[0]
                          auf den letzten mit
                          eingabe[eingabe.length-1]
                          (bei nur einem Wert sind das dann dieselben)
                          also brauchst du nur die Zeilen

                          document.formulareingabe.erster.value=eingabe[0];
                          document.formulareingabe.letzter.value=eingabe[eingabe.length-1];

                          ans Ende der Funktion einfügen (und die Formularfelder mit name="erster" / "letzter" ins Formular "formulareingabe")

                          Gruß
                          rfb

                          --
                          Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
                          (Galileo Galilei)
                          1. Moin

                            Gibt es jetzt noch die Möglichkeit in einer neuen Funktion die erste und die letzte Zahl auszulesen und gesondert auszugeben? In meinem Beispiel, die 800 in ein Feld und die 1000 in ein weiteres Feld. Sozusagen, der erste und der letze Wert in dem Feld.
                            auf den ersten Wert greifst du zu mit
                            eingabe[0]
                            auf den letzten mit
                            eingabe[eingabe.length-1]
                            (bei nur einem Wert sind das dann dieselben)
                            also brauchst du nur die Zeilen

                            document.formulareingabe.erster.value=eingabe[0];
                            document.formulareingabe.letzter.value=eingabe[eingabe.length-1];

                            ans Ende der Funktion einfügen (und die Formularfelder mit name="erster" / "letzter" ins Formular "formulareingabe")

                            Gruß
                            rfb

                            Noch ein SUPER. Läuft prima.. Vielen Dank, hast mir sehr geholfen.. :-)