Karl: Text aus mehreren Formularfeldern in ein neuesFormularfeld

Hi Leute,

habe folgendes Problem:
aus mehreren Formularfeldern soll Text, sofern eingetragen mit Komma getrennt, in ein letztes Formularfeld übertragen werden.
Mir fehlt die zündende Idee, bzw. richitge Umsetzung für eine Abfragefunktion, die 1. wenn Text enthalten, den mit Komma versieht wenn nicht, nichts tut und 2. alle Inhalte der Formularfelder in das letzte überträgt.

ohne das Kommaproblem habe ich es ganz einfach so gelöst, aber wenn ein Textfeld leer bleibt, wird hierbei trotzdem ein Komma ausgegeben:

<form name="form">
<p>Marken : </p><textarea name="marken" cols="50" rows="5"></textarea><br>
<p>Produkte: </p><textarea name="produkte" cols="50" rows="5"></textarea><br>
<p>Sonstiges: </p><textarea name="sonstiges" cols="50" rows="5"></textarea><br>
<p>Zusatzbegriff: </p><textarea name="zusatzbegriff" cols="50" rows="1"></textarea><br>
<p></p>
<input type="button" value="Generieren" onclick="document.form.text.value = document.form.marken.value + ',  ' + document.form.produkte.value + ',  ' + document.form.sonstiges.value + ', ' + document.form.zusatzbegriff.value"><br>
<p></p>
<textarea name="text" cols="50" rows="5"></textarea>
</form>

  1. ohne das Kommaproblem habe ich es ganz einfach so gelöst, aber wenn ein Textfeld leer bleibt, wird hierbei trotzdem ein Komma ausgegeben:

    Da wirst du wohl um eine if-Abfrage, die testet, ob das Feld einen Wert beinhaltet, nicht herumkommen...

    1. ohne das Kommaproblem habe ich es ganz einfach so gelöst, aber wenn ein Textfeld leer bleibt, wird hierbei trotzdem ein Komma ausgegeben:

      Da wirst du wohl um eine if-Abfrage, die testet, ob das Feld einen Wert beinhaltet, nicht herumkommen...

      ist mir schon klar, aber wie muss die aussehen??

      meine kläglichen Versuche scheiterten - vemutlich an grundlegenden Syntaxfehlern?

      haste nen Tipp:

      function Generieren()
      {
      if(document.form.marken.value != '')
      {
      document.form.Ausgabefeld.value = document.form.marken.value + ', ';
      }
      else if(document.form.produkte.value != '')
      {
      document.form.Ausgabefeld.value = document.form.produkte.value + ', ';
      }
      else if(document.form.sonstiges.value != '')
      {
      document.form.Ausgabefeld.value = document.form.sonstiges.value + ', ';
      }
      else if(document.form.zusatzbegriff.value != '')
      {
      document.form.Ausgabefeld.value = document.form.zusatzbegriff.value;
      }
      else{
      document.form.Ausgabefeld.value = '';
      }

      gruß,
      karl

  2. Hi Karl,

    dies:

    <input type="button" value="Generieren" onclick="document.form.text.value = document.form.marken.value + ',  ' + document.form.produkte.value + ',  ' + document.form.sonstiges.value + ', ' + document.form.zusatzbegriff.value"><br>

    bitte durch:

      
    <input type="button" value="Generieren" onclick="myfunction()">  
    
    
      
    <script language="javascript" type="text/javascript">  
      function myfunction(){  
        var target        = document.form.text;  
        var marken        = document.form.marken;  
        var produkte      = document.form.produkte;  
        var sonstiges     = document.form.sonstiges;  
        var zusatzbegriff = document.form.zusatzbegriff;  
      
        if(marken.value != ''){  
          target.value = marken.value;  
        }  
      
        if(produkte.value != ''){  
          if(target.value != ''){  
            target.value+= ', ';  
          }  
          target.value = produkte.value;  
        }  
      
        if(sonstiges.value != ''){  
          if(target.value != ''){  
            target.value+= ', ';  
          }  
          target.value = sonstiges.value;  
        }  
      
        if(zusatzbegriff.value != ''){  
          if(target.value != ''){  
            target.value+= ', ';  
          }  
          target.value = zusatzbegriff.value;  
        }  
      }  
    </scrpt>  
    
    

    Den folgenden Code solltest du nicht kopieren, aber als Beispiel und Gedankenstütze verwenden.

    1. Hi Jurik,

      super Tipp - bleibe aber irgendwie am gleichen Problem hängen.

      wie setze ich den target value zusammen mit Kommata - gelingt mir immer noch nicht.... sorry

      Gruß,
      Karl

      function myfunction(){
          var target        = document.form.text;
          var marken        = document.form.marken;
          var produkte      = document.form.produkte;
          var sonstiges     = document.form.sonstiges;
          var zusatzbegriff = document.form.zusatzbegriff;

      if(marken.value != ''){
            target.value = marken.value;
          }

      if(produkte.value != ''){
            if(target.value != ''){
              target.value+= ', ';
            }
            target.value = produkte.value;
          }

      if(sonstiges.value != ''){
            if(target.value != ''){
              target.value+= ', ';
            }
            target.value = sonstiges.value;
          }

      if(zusatzbegriff.value != ''){
            if(target.value != ''){
              target.value+= ', ';
            }
            target.value = zusatzbegriff.value;
          }
        }
      </scrpt>

      1. Mahlzeit,

        wie setze ich den target value zusammen mit Kommata - gelingt mir immer noch nicht.... sorry

        Das steht in dem von Jurik geposteten Code doch drin - hast Du den überhaupt ausprobiert?

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Hi EKKi

          ja - kommt aber so nicht zum Tragen, weil der text.value immer durch den Text des letzten mit Inhalt gefüllten Feldes ersetzt wird. - Finde aber keine Lösung dafür, sorry!

          Gruß,
          Karl

          Mahlzeit,

          wie setze ich den target value zusammen mit Kommata - gelingt mir immer noch nicht.... sorry

          Das steht in dem von Jurik geposteten Code doch drin - hast Du den überhaupt ausprobiert?

          MfG,
          EKKi

          1. Mahlzeit,

            ja - kommt aber so nicht zum Tragen, weil der text.value immer durch den Text des letzten mit Inhalt gefüllten Feldes ersetzt wird. - Finde aber keine Lösung dafür, sorry!

            Dann hast Du wohl <http://de.selfhtml.org/javascript/sprache/operatoren.htm#berechnung@title=nicht richtig gesucht> bzw. den Quellcode überhaupt nicht verstanden (denn jeweils zwei Zeilen über denjenigen, die dem Ziel einen neuen Wert zuweisen, findest Du den Operator, der einen neuen Wert einfach nur an das Ziel anhängt) ... das ist mal wieder ein Paradebeispiel dafür, dass man eigentlich KEINEN unkommentierten Quellcode ohne weitere Erläuterungen als Antwort auf eine Frage bzw. Problembeschreibung posten sollte: er wird von denjenigen, die nicht willens oder in der Lage sind, das Archiv, die Forumssuche oder die allwissende Müllhalde zu bedienen und sich in die Materie einzuarbeiten, um ihr Problem zu lösen, einfach nur kopiert - und anschließend stehen sie dann wie der Ochs vorm Berg, wenn unvorhergesehene Probleme auftreten.

            Übrigens ist TOFU unschön.

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. Hi EKKi,

              Mahlzeit,

              ja - kommt aber so nicht zum Tragen, weil der text.value immer durch den Text des letzten mit Inhalt gefüllten Feldes ersetzt wird. - Finde aber keine Lösung dafür, sorry!

              Dann hast Du wohl <http://de.selfhtml.org/javascript/sprache/operatoren.htm#berechnung@title=nicht richtig gesucht>

              stimmt! - Du hast mir aber dankenswerter Weise trotzdem auf die Sprünge geholfen und ich gelobe Besserung!

              Gruß,
              Karl

    2. Mein Fehler - hatte das '+' vergessen.

        
      <script language="javascript" type="text/javascript">  
        function myfunction(){  
          var target        = document.form.text;  
          var marken        = document.form.marken;  
          var produkte      = document.form.produkte;  
          var sonstiges     = document.form.sonstiges;  
          var zusatzbegriff = document.form.zusatzbegriff;  
        
          if(marken.value != ''){  
            target.value = marken.value;  
          }  
        
          if(produkte.value != ''){  
            if(target.value != ''){  
              target.value+= ', ';  
            }  
            target.value+= produkte.value;  
          }  
        
          if(sonstiges.value != ''){  
            if(target.value != ''){  
              target.value+= ', ';  
            }  
            target.value+= sonstiges.value;  
          }  
        
          if(zusatzbegriff.value != ''){  
            if(target.value != ''){  
              target.value+= ', ';  
            }  
            target.value+= zusatzbegriff.value;  
          }  
        }  
      </scrpt>