/ / Edytor Tinymce: zawartość nie aktualizuje się po kliknięciu innego przycisku w formularzu - javascript, jquery, html, tinymce, tinymce-4

Edytor Tinymce: zawartość nie aktualizuje się po kliknięciu innego przycisku w formularzu - javascript, jquery, html, tinymce, tinymce-4

Mam następujący formularz:

<form method="post" action="example.com" id="form">
<textarea id="content">{{$content_from_database}}</textarea>
<button type="submit">Update</button>
</form>

używam tinymce editor wewnątrz formularza:

 tinymce.init({
selector:"textarea#content"
});

Po kliknięciu przycisku przesyłania po aktualizacji treści:

$("textarea#content").val() = "old content"

Treść nadal jest starą treścią.

ZAKTUALIZOWANE

Kod Ajax:

$("#form").on("submit", function() {
$.post(
$(this).prop("action"), {
"content": $("textarea[name=content]").val(),
},
function(d){
console.log(d);
},
"text"
).done(function() {
alert("successful");
}).fail(function(e) {
alert("failed");
});
return false;
});

Jak mogę to naprawić?

Proszę pomóż mi!

Dziękuję Ci bardzo!

Odpowiedzi:

2 dla odpowiedzi № 1

Jeśli używasz AJAX do przesłania formularza, musisz użyć tinyMCE.triggerSave() Wywołanie API, aby TinyMCE zaktualizowało bazę <textarea>.

Kiedy ładujesz TinyMCE swój oryginał <textarea> jest faktycznie "ukryty" przez iFrame i inne elementy DOM, które TinyMCE ładuje na stronę. Podczas pisania w TinyMCE edytor nie zachowuje ciągłego <textarea> zsynchronizowany.

Powołanie tinyMCE.triggerSave() zmusi redaktora do aktualizacji bazowego <textarea> a następnie możesz użyć AJAX do przesłania formularza, który zawiera <textarea>.

Podejrzewam, że będziesz musiał dodać go przed tą częścią kodu, ponieważ wydaje się, że oczekujesz <textarea> mieć poprawną treść.

$(this).prop("action"), {
"content": $("textarea[name=content]").val(),
}