Можно ли добавить редактор tinymce для jQuery jtable plugin для создания / редактирования действия?
Я новичок в jTable-плагине, но мне нужен редактор tinymce для одного поля в Create / Edit action jQuery jtable, поэтому мне интересно, могу ли я использовать jtable?
Я знаю, что я могу создать поле jtable в textarea в форме Create / Edit, поэтому я задаюсь вопросом, могу ли я как-то добавить tinymce?
1) Если я использую простой стандартный код для добавления tinymce на главной странице (где вызывается jtable), то ничего не происходит с Create / Edit record (no tinymce):
<script type="text/javascript"> tinymce.init({ selector: "textarea" }); </script>
2) Я также попытался отредактировать основной файл jtable, добавив tinymce для каждого текстового поля. Он показывает мне редактор tinymce, но проблема связана с POST. Когда я отправляю форму, он всегда дает мне пустое значение (тот, который нужно отредактировать с помощью tinymce).
Вот как я добавляю tinymce непосредственно в сценарии jtable:
.append('<script>tinymce.init({selector: "textarea"});</script>');
3) И последний думаю, что я попытался, используя параметр ввода jTable для поля:
article: { title: 'Article', input: function (data) { return 'tinymce.init({selector: "textarea"});<textarea></textarea>'; },
Это приводит к некоторой синтаксической ошибке. У меня есть синтаксическая ошибка, но я уверен, что могу использовать что-то вроде этого.
Попробуйте этот код:
formCreated: function(event, data) { tinymce.init({ selector: "textarea" }); }
После тестирования кажется, что это решение устраняет проблему, когда TinyMCE не сохраняется в текстовом поле (причина – событие отправки в jtable перегружено). Кроме того, это решение выгружает и перезагружает TinyMCE, когда jTable закрывает и снова открывает панель редактирования.
Соединяя их – это сработало для меня:
formCreated: function (event, data) { tinymce.init({ selector: 'textarea', setup: function (editor) { editor.on('change', function () { editor.save(); }); } }); for (var editor_id in tinyMCE.editors) { tinyMCE.editors[editor_id].getBody().setAttribute('readonly', '1'); tinymce.EditorManager.execCommand('mceAddControl', true, editor_id); tinymce.EditorManager.execCommand('mceAddEditor', true, editor_id); } }, formClosed: function (event, data) { for (var editor_id in tinyMCE.editors) { tinyMCE.editors[editor_id].getBody().setAttribute('readonly', '1'); tinymce.EditorManager.execCommand('mceRemoveControl', true, editor_id); tinymce.EditorManager.execCommand('mceRemoveEditor', true, editor_id); } }