I m using tinyMCE for textareas and POSTing form through AJAX.
But when I m trying to save textarea value, it is taking old values on first click, but it takes updated values on second click.
I have tried using tinyMCE.triggerSave()
but it didn't work.
I have also tried tinyMCE.get('myid').getContent()
, still it takes old values.
My code is as follows.
$(".submit").live("click", function () {
tinyMCE.triggerSave();
var f = $(this).parents("form");
var action = f.attr("action");
var serializedForm = f.serialize();
//tinyMCE.triggerSave(); also tried putting here
$.ajax({
type: 'POST',
url: action,
data: serializedForm,
async: false,
success: function (data, textStatus, request) {
$(".divform").html(data);
},
error: function (req, status, error) {
alert&("Error occurred!");
}
});
return false;
});
Please help, any help would be appreciated
You can configure TinyMCE as follows to keep the values of hidden textareas in sync as changes are made via TinyMCE editors:
tinymce.init({
selector: "textarea",
setup: function (editor) {
editor.on('change', function () {
tinymce.triggerSave();
});
}
});
With this in place, you can access up-to-date values directly from the textarea elements at any time.
This has been tested on TinyMCE 4.0
Demo running at: http://jsfiddle.net/9euk9/
Use this instead of tinymce.triggerSave();
$('#' + 'your_editor_id').html( tinymce.get('your_editor_id').getContent() );
An alternative implementation to the one posted by Dan Malcolm, for TinyMCE 3.x, would be as follows:
tinymce.init({
selector: "textarea",
setup: function (editor) {
editor.onChange.add(function() {
editor.save();
});
}
});
As well as working on 3.x, this version uses editor.save
instead of tinymce.triggerSave
, which means it only updates the current editor rather than all editors in the page.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With