CKeditor 3 speichert Eingaben nicht, wenn das Formular per jQuery.serialize() über Ajax submitted wird
Posted: Januar 14, 2010 at 2:39 pm | Tags: CKEdit, Editor, FCKEditor, Javascript, jQuery, WYSIWYG | PDFWie die Überschrift schon verrät, hatte ich ein Formular gebaut mit einer Textarea, die durch den Wysiwyg-Editor CKEditor 3.1 ersetzt werden sollte. Darunter gab es einen Button “Speichern”, der beim Klick eine Javascript-Funktion aufruft, die das Formular serialisiert ( $(form).serialize(); ) und diese serialisierten Daten dann per jQuery-Ajax an den Webserver sendet. Allerdings wurden alle Eingaben im Wysiwyg-Editor dabei ignoriert.
Ich habe dann durch Zufall rausgefunden, dass die Eingaben im Editor nicht nach jedem Ändern wieder in die urspüngliche Textarea geschrieben werden, sondern immer nur, wenn das Formular submitted wird.
Ich habe also meine Funktion zum Speichern der Daten umgeschrieben und die Submit-Methode des Formulars beim Klick auf den Speichern-Button ausgelöst: $(form).trigger(‘submit’). Dabei schreibt der CKEditor die Eingaben wieder in die Textarea zurück und die Daten können(bevorzugt bei Post) übertragen werden.
Wer aber doch lieber die Ajax-Methode nehmen möchte, kann die Daten aus dem CKEditor auch vor dem Ajax-Aufruf manuell in die Textarea schreiben. Das geht so:
var editor_data = CKEDITOR.instances.editor1.getData(); $(textarea).html(editor_data);