Richard: Text ins Textfeld schreiben

Hallo alle,

Folgende Situation:

Ein Textfeld "text" wird mit Text gefüllt, dann wird ein Button geklickt und ein Javascript ausgeführt, welches diesen Text in ein zweites Textfeld "target" schreibt.

  
target = document.forms[0].elements['target'].value;  
text = document.forms[0].elements['text'].value;  
target = text;  

Im IE funktioniert´s wider Erwarten perfekt, doch im Firefox nicht. Hier wird der Text nur für einen Augenblick angezeigt und verschwindet dann sofort wieder. Die Fehlerkonsole hat eigentlich nichts zu meckern.

Weiß jemand woran es liegt?

Danke und beste Grüße
Richard

  1. Hallo Richard,

    Ein Textfeld "text" wird mit Text gefüllt, dann wird ein Button geklickt und ein Javascript ausgeführt, welches diesen Text in ein zweites Textfeld "target" schreibt.

    dein Code-Ausschnitt macht aber etwas anderes.

    target = document.forms[0].elements['target'].value;

    Kopiert den Inhalt des Textfelds 'target' in die Javascript-Variable target.

    text = document.forms[0].elements['text'].value;

    Kopiert den Inhalt des Textfelds 'text' in die Javascript-Variable text.

    target = text;

    Und diese Anweisung kopiert zum Schluss den Inhalt der Variablen text in die Variable target. Ein Zusammenhang mit dem gleichnamigen Textfeld im Formular besteht an der Stelle nicht mehr.

    Im IE funktioniert´s wider Erwarten perfekt, ...

    Hier ist wohl eher der Wunsch der Vater des Gedankens, oder nicht? Ich kann das jedenfalls nicht nachvollziehen, nicht einmal theoretisch.

    doch im Firefox nicht. Hier wird der Text nur für einen Augenblick angezeigt und verschwindet dann sofort wieder.

    Nicht einmal "für einen Augenblick" dürfte hier etwas Sichtbares passieren.

    Die Fehlerkonsole hat eigentlich nichts zu meckern.

    Nö. Ist ja technisch alles korrekt, wenn auch wirkungslos.
    Du hast nirgends eine Anweisung, die irgendeinen Wert in document.forms[0].elements['target'].value zurückschreibt.

    So long,
     Martin

    --
    Ich bin 30. Ich demensiere apokalyptisch.
      (Orlando)
    1. Hallo Martin,

      Und diese Anweisung kopiert zum Schluss den Inhalt der Variablen text in die Variable target. Ein Zusammenhang mit dem gleichnamigen Textfeld im Formular besteht an der Stelle nicht mehr.

      Sollte man meinen...

      Wenn das so ist, müsste ja aber

        
      document.forms[0].elements['target'].value = document.forms[0].elements['text'].value;  
      
      

      funktionieren, oder nicht? Tut´s aber nicht, es passiert genau das Selbe wie im ersten Fall.

      Beste Grüße
      Richard

      1. Hallo Richard,

        Wenn das so ist, müsste ja aber

        document.forms[0].elements['target'].value = document.forms[0].elements['text'].value;

        funktionieren, oder nicht? Tut´s aber nicht, es passiert genau das Selbe wie im ersten Fall.

        Folgender Schnipsel tut bei mir sowohl im IE, im Opera, als auch im Firefox das, was ich erwarte: Er kopiert beim Anlicken des "Jetzt!"-Buttons den Inhalt des ersten Textfelds in das zweite.

        <script type="text/javascript">
         function DoCopy()
          { var f = document.forms[0];
            f.elements['n2'].value = f.elements['n1'].value;
          }
         </script>

        [...]

        <form method="get" action="...">
         <input type="text"   name="n1"><br>
         <input type="text"   name="n2"><br>
         <input type="button" name="btn" value="Jetzt!" onclick="DoCopy();"><br>
         <input type="submit" name="sub" value="Senden">
         </form>

        Bei dir muss also noch irgendein Bug vorliegen, der die Browser zu Fall bringt. Möglicherweise irgendwo ein Namenskonflikt?

        So long,
         Martin

        --
        Es existiert kein Weg, "für" etwas zu optimieren, sondern nur gegen alles andere.
          (Cheatah)
        1. Hallo Martin,

          Bei dir muss also noch irgendein Bug vorliegen, der die Browser zu Fall bringt. Möglicherweise irgendwo ein Namenskonflikt?

          Leider auch nicht. Ich habe den Textfeldern nochmal einen unmöglichen Namen gegeben, aber es ist nach wie vor das Selbe Problem. Welche FF-Version benutzt du denn? Bei mir tritt das Problem sowohl im FF 2.0 auf (ältere Versionen habe ich nicht mehr), als auch im Opera. Das Komische ist: Wenn ich anschließend in der Historyliste zurückgehe, wird der Text im Zielfeld angezeigt.

          Beste Grüße
          Richard

          1. Hallo,

            Ich habe den Textfeldern nochmal einen unmöglichen Namen gegeben, aber es ist nach wie vor das Selbe Problem. Welche FF-Version benutzt du denn?

            oh, ich vergaß allgemein, Versionen anzugeben: IE 5.5, Opera 8.54 und FF 1.5.0.7, bzw. als Vergleich auch noch einen älteren 1.0.4er FF. Alle unter Win2k.

            Konntest du denn an meinem auf ein Minimum abgespeckten Beispiel nachvollziehen, dass es grundsätzlich geht?

            Das Komische ist: Wenn ich anschließend in der Historyliste zurückgehe, wird der Text im Zielfeld angezeigt.

            Was meinst du damit? Du verlässt die angezeigte Seite doch gar nicht, wie soll da überhaupt eine History entstehen, in der du wieder zurückgehen kannst? Schließlich sendest du das Formular noch gar nicht ab, oder doch?

            Ciao,
             Martin

            --
            Zum Glück ist alles nur halb so doppelt.
            1. Hallo Martin,

              Konntest du denn an meinem auf ein Minimum abgespeckten Beispiel nachvollziehen, dass es grundsätzlich geht?

              "Grundsätzlich gehen" tat es bei mir auch - leider nur im IE.

              Was meinst du damit? Du verlässt die angezeigte Seite doch gar nicht, wie soll da überhaupt eine History entstehen, in der du wieder zurückgehen kannst?

              Eben doch. Selbst wenn der Cache gelöscht ist, entsteht nach Ausführen des Javascripts eine History. Und wenn ich in der zurückgehe, wird der Text im Textfeld angezeigt, so wie ich es haben möchte.

              Beste Grüße
              Richard