2

是否可以为创建/编辑操作的 jquery jtable 插件添加 tinymce 编辑器?

我是 jTable 插件的新手,但我需要对 jquery jtable 的 Create / Edit 操作中的一个字段使用 tinymce 编辑器,所以我想知道我可以使用 jtable 吗?

我知道我可以在创建/编辑表单中将 jtable 字段设置为 textarea,所以我想知道是否可以在其中添加 tinymce?

1)如果我使用简单的标准代码在主页中添加tinymce(调用jtable),那么创建/编辑记录不会发生任何事情(没有tinymce):

<script type="text/javascript">
    tinymce.init({
        selector: "textarea"        
    });
</script>

2)我还尝试编辑核心 jtable 文件,将 tinymce 添加到每个文本区域。它向我展示了 tinymce 编辑器,但问题出在 POST 上。当我发布表单时,它总是给我空值(应该用 tinymce 编辑的值)。

这就是我在 jtable 脚本中直接附加 tinymce 的方式:

.append('<script>tinymce.init({selector: "textarea"});</script>');

3)最后一次我尝试过,使用jTable输入选项作为字段:

article: {
   title: 'Article',                    
   input: function (data) {
        return 'tinymce.init({selector: "textarea"});<textarea></textarea>';
   },

这给了我一些语法错误。我有一些语法错误,但我确信我可以使用这样的东西。

4

2 回答 2

1

试试这个代码:

formCreated: function(event, data)
            {
                tinymce.init({
                    selector: "textarea"
                });
            }
于 2013-12-23T13:41:40.357 回答
1

经过测试,该解决方案似乎解决了 TinyMCE 未保存到 textarea 的问题(原因 - jtable 中的提交事件已超载)。此外,当 jTable 关闭并重新打开编辑窗格时 ,此解决方案会卸载并重新加载 TinyMCE。

把它们放在一起——这对我有用:

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);
    }

}
于 2016-02-01T12:36:59.383 回答