2016-05-16 79 views
0

当我在静态div上启动tinymce时,它可以很好地工作。 这个我正在使用,所以用户可以发布一个新帖子。将TinyMCE动态添加到div

然后,当用户想要编辑从db通过循环显示的帖子时,他可以点击编辑并将新的tinymce实例附加到内容div。到现在为止还挺好。

问题是,当更新编辑过的文章时,ajax无法序列化tinymce编辑器。

/////// create a tinymce instance and apend it to the given element ////// 
function create_tinymce(element){ 
tinymce.init({ 
    selector: element, 
    skin: 'jb', 
    content_css : 'css/tinymce-style.css', 
    menubar: false, 
    toolbar: 'undo redo | bold italic fontsizeselect | alignleft aligncenter alignright alignjustify | link', 
    fontsize_formats: '8px 10px 12px 14px 18px 24px 36px', 
    entity_encoding: 'named' 
}); 
} 

那么函数发布形式:

<div id="content_text_<?php echo($id); ?>" class="event-edit-input textarea-content"> 
    <?php echo($content); ?> 
</div> 

这是当用户点击编辑被调用的函数

/////// posting the form //// 
function post_form(form, script, editor){ 

tinyMCE.triggerSave(true, true); 

var serialized_form = $("#"+form).serialize(); 

alert(serialised_form); 

} 

当我提醒序列化形式的数据,一切除了锡酸盐含量出现。

我不明白,与我的工作设置唯一的区别是,后者是静态的,不是动态创建的。

任何人都可以帮我在这里......?

干杯 克里斯

+0

您使用的是什么版本的TinyMCE?你在测试什么浏览器? – Daryl

+0

我正在使用4.3.12,并试图safari – Chris

回答

0

,这样对编辑的更改事件基础字段将自动更新你可以尝试添加triggerSave()功能TinyMCE的初始化...

tinymce.init({ 
    selector: "textarea", 
    . 
    . 
    setup: function (editor) { 
     editor.on('change', function() { 
      tinymce.triggerSave(); 
     }); 
    } 
}); 

这将消除需要在尝试通过AJAX发布表单时执行此操作。

更新:您的选择器是STRING还是DOM元素?基于我在你的代码中看到的内容

function create_tinymce(element){ 
tinymce.init({ 
    selector: element, 
    skin: 'jb', 
    ... 

看起来你试图提供一个DOM元素(或jQuery包装的DOM元素)。选择器参数需要一个字符串作为记录在这里:

https://www.tinymce.com/docs/configure/integration-and-setup/#selector

如果你硬编码(作为测试)的字符串运作的?

+0

试过。 它不是说该领域没有得到更新,而是似乎完全没有一个领域。 正如我在问题中所述,我确实有一个带有tinyMCE div的静态表单,可以很好地工作。 – Chris

+0

您的两个tinyMCE编辑器是否在同一页面上同时处于活动状态? – Daryl

+0

@Chris请参阅我有关init的'selector'部分的更新。 –