Problem mit Firefox & Prototype (Ajax.Request & Ajax.Updater)

Ich vermute angesichts der Bildbeweise :-) folgendes:
Der Updater verwendet ja die Prototype-Methode update(), um den Inhalt zu erneuern.
Diese wiederum setzt die innerHTML-Eigenschaft des Zielelementes neu.
Aber: Um den Inhalt eines <textarea> per zu Ändern, wird idR. dessen value-Eigenschaft genutzt.

Warum das mal geht, und mal nicht, frag mich nicht.

Also der Lösungsvorschlag: verzichte generell auf den Ajax.Updater, sofern es Formularelemente betrifft, und verwende stattdessen den Ajax.Request mit einer callback-Funktion für onSuccess, welche das value-Attribut des textarea mit dem Inhalt von transport.responseText füllt.
 
Hi,

Diese wiederum setzt die innerHTML-Eigenschaft des Zielelementes neu.
Aber: Um den Inhalt eines <textarea> per zu Ändern, wird idR. dessen value-Eigenschaft genutzt.

da wär ich jetzt erstmal nicht drauf gekommen. Ohne nachzuschauen hätte ich innerHTML genommen, da das textarea-Element ja kein value-Attribut hat.

Warum das mal geht, und mal nicht, frag mich nicht.

Tja, das wird wohl das ewige Geheimnis...usw.
Mir persönlich ist dieses Verhalten aber auch noch nicht untergekommen. Da bin ich ja jetzt mal gespannt. :)

LG
 
Also der Lösungsvorschlag: verzichte generell auf den Ajax.Updater, sofern es Formularelemente betrifft, und verwende stattdessen den Ajax.Request mit einer callback-Funktion für onSuccess, welche das value-Attribut des textarea mit dem Inhalt von transport.responseText füllt.

Doofe Frage, aber wie kann ich dass value-Attribut der textarea manipulieren?
Mir ist jedenfalls neu dass das textarea-Elment ein value-Attribut besitzt dass man für sowas nutzten kann.

Gibt es sowas wie eine setValue()-Methode?

Statt dem Updater hab ich nu sowas ausprobiert was aber auch nicht den gewünschten Effekt hat:
Code:
onSuccess: function(transport){ $F('txt') = transport.responseText }
 
Doofe Frage, aber wie kann ich dass value-Attribut der textarea manipulieren?
Mir ist jedenfalls neu dass das textarea-Elment ein value-Attribut besitzt dass man für sowas nutzten kann.

Das textarea-Element besitzt auch kein value-Attribut, aber der Knoten hat eine value-Eigenschaft.

Anwendbar auf: Klick-Buttons, Checkboxen, Felder für Datei-Upload, Versteckte Elemente, Passwortfelder, Radio-Buttons, Abbrechen-Buttons, Absendebuttons, einzeilige Eingabefelder, mehrzeilige Eingabefelder, Auswahllisten

Probier's mal so:
Code:
onSuccess: function(transport){ $('txt').value = transport.responseText }

LG
 
Ah danke werd ich am Montag gleich mal ausprobieren und dann berichten obs so funktioniert hat. ich hoffe es jedenfalls, ansonsten werd ich zum speichern dass ganze nu doch abschicken so dass er die seite neu aufbaut nach dem speichern.

----- Edit -----
Danke für die Hilfe, damit funktioniert es wunderbar!
 
Zuletzt bearbeitet:
Zurück