Kann TextArea nicht mit Javascript aktualisieren, nachdem es manuell geschrieben wurde

8

Ich schreibe eine Online-Anwendung, wo ich einige Texte in der Datenbank speichern kann.
Es gibt 5 "textarea" und 5 "input type = text" -s.
Ich implementiere auch eine Suche, um die DB-Einträge leicht zu finden und zu bearbeiten. Ein neues Auswahlfenster wird angezeigt (mit Hilfe von Prototyp und Ajax). Wenn Sie auf einen der Einträge klicken, wird das folgende Formular ausgefüllt (es ist dasselbe Formular, das zum Hinzufügen neuer Ergebnisse verwendet wurde). Jetzt ist hier, wo das Problem entsteht ....
Wenn ich ein neues Formular hinzufüge oder ein existierendes ALL TEXTAREA Felder bearbeite, die modifiziert wurden, gesperrt werden oder so ähnlich (nur Textareas, die Eingaben funktionieren immer noch) ... Sie werden Javascripts nicht mehr ausführen .update t ändern, wenn ich den nächsten Eintrag wähle .... ODER AM MINDESTENS GIBT ES IN FireFox (3.5.etwas). Es funktioniert gut in IE, aber da ich ein FF-Benutzer bin und ich würde es dort auch arbeiten, ich frage mich, ob jemand ähnliche Probleme gestoßen und es mit Leichtigkeit gelöst hat.
Das Problem scheint wegzugehen, wenn ich form.reset () aufruft, aber das bringt einige Code-generierte Auswahl- / Optionsfelder durcheinander, außerdem möchte ich die Daten behalten.

Mir scheint, dass FF entschieden hat, dass der Text, den ich eingegeben habe, wichtiger ist als der Text, den JavaScript eingeben möchte, also überschreibt er es ... und ich kann nicht herausfinden warum. An dieser Stelle beschuldige ich .update (), aber ich weiß nicht, wie ich es sonst tun soll.
Die INPUT - Felder scheinen Probleme mit .update zu haben (oder es funktionierte einfach nicht für mich), also musste ich sie in .value = umschreiben (habe versucht, auch mit textareas .value auszuprobieren, in der Hoffnung, dass das irgendwas reparieren würde, leider mit nichts nützen).

Also, hat irgendjemand irgendwelche Hinweise, warum das passiert und wie man es repariert, ohne das Formular bei jedem Schritt zurücksetzen zu müssen?

    
RedFury 18.12.2009, 11:14
quelle

5 Antworten

2

.value und .innerHTML schienen das Problem zu beheben

    
RedFury 31.12.2009, 13:09
quelle
5

Ich hatte das gleiche Problem. Wenn HTML nach einem DOM-Objekt analysiert, ist der Inhalt von textarea innetHTML von <textarea>

%Vor%

Die Werte document.getElementByTagName('textarea').innerHTML und document.getElementByTagName('textarea').value gibt denselben Wert Content of textarea

zurück

Aber nach dem Laden des DOM-Objekts wird durch Ändern von innerHTML value der Inhalt von textarea nicht geändert. Eine Lösung, um sie zu ändern, ist das Ändern von value field.

%Vor%

oder in jquery

%Vor%     
Skamielina 24.02.2013 19:38
quelle
1

Ich habe dieses seltsame Problem einfach mit:

behoben %Vor%

Auch nach dem Ändern der Textarea wird das Skript überschrieben.

innerHTML funktionierte nicht für mich nach dem Ändern der Textarea.

    
Dornail 27.09.2011 23:20
quelle
0

Ich habe genau dieses Problem. Bisher habe ich es versucht

%Vor%

Ich habe es auch versucht,

%Vor%

Das Problem scheint zu sein, dass nichts angezeigt wird, wenn der Benutzer in das Textfeld (#message) eingibt und dann auf die Schaltfläche klickt, um die Angebotsverknüpfung hinzuzufügen. Beim Betrachten der Quelle mit Firebug kann ich sehen, dass der tatsächliche Text, der in der Textfläche enthalten ist, geändert wird, aber nicht auf dem Bildschirm angezeigt wird.

Es scheint, dass das Javascript den HTML-Inhalt des Tags ändert, aber der Browser speichert die aktuell getippten Inhalte im Speicher (ich nehme an) oder anderswo.

Das Aktualisieren des Textfelds mit val (e + offer) löscht den eingegebenen Text und ersetzt ihn durch den Angebotslink, und die Verwendung von innerHTML = e + offer funktioniert überhaupt nicht und zeigt keine Änderung im Textfeld.

Ich habe es geschafft, das zu sortieren!

Mein Denken drehte sich um die Tatsache, dass, weil das Tag den Text enthält und sein eigenes schließendes Tag hat, ich den Inhalt mit .html () bekommen müsste.

Indem Sie .val () verwenden, um den Inhalt des Feldes zu erhalten, können Sie den Inhalt einfach abrufen und aktualisieren. Ich endete mit dem folgenden,

%Vor%     
David Yell 24.12.2009 09:24
quelle
0

Manchmal möchten Sie vielleicht in einem Textbereich eine bestimmte Zeichenfolge anzeigen und lassen der Benutzer sieht, was es ist, und eventuell Änderungen daran vornehmen; aber du willst es Ermöglichen Sie ihnen zu sehen, was der ursprüngliche Text war. Textareas sind ziemlich unhandlich, aber auch eine manuelle Änderung des editierten Textes ist mit diesem Setup umkehrbar.

%Vor%

Die obige Struktur löste dieses Problem für mich.

    
MountainMan 29.12.2017 05:12
quelle

Tags und Links