Я использую редактор TinyMCE в своем проекте на .Net Core, но у меня возникла проблема. Вот как я инициализирую редактор:
tinymce.init({
selector: 'textarea#myEditor'
});
Раньше я получал значение текстовой области так:
var description = $('#description').val();
Теперь я пытаюсь сделать это по имени:
var description = $('textarea[name="description"]').val();
Но значение всегда пустое. Вот мой HTML:
<textarea id="myEditor" name="description"></textarea>
Как мне правильно получить текст из редактора TinyMCE? Может, я что-то делаю не так?
Проблема в том, что TinyMCE заменяет textarea своим iframe’ом, поэтому jQuery не может достучаться до оригинального элемента. Используй метод tinymce.activeEditor.getContent() для получения текста. Это работает даже если у тебя несколько редакторов на странице. Если нужно получить значение конкретного редактора по id, то tinymce.get(‘myEditor’).getContent(). Главное не забудь вызывать это после полной инициализации TinyMCE.
да, с tinymce бывает непросто. я тоже сталкивался с похожей проблемой. попробуй использовать событие change редактора, чтобы получать актуальное содержимое. примерно так:
tinymce.init({
selector: ‘textarea#myEditor’,
setup: function (editor) {
editor.on(‘change’, function () {
var content = editor.getContent();
console.log(content);
});
}
});
это позволит отслеживать изменения в реальном времени. а когда нужно будет сохранить - просто возьми последнее значение из консоли. надеюсь, это поможет решить твою задачу!
Для получения содержимого TinyMCE нужно использовать его API, а не jQuery. Попробуй так:
var description = tinymce.get(‘myEditor’).getContent();
Это должно сработать, если у тебя правильно настроен селектор при инициализации. Если все еще не получается, проверь, что редактор точно инициализировался и ID совпадает. Дай знать, если будут еще вопросы!