2016-05-16 122 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'部分的更新。 –