当我尝试使用多个配置时,TinyMCE提交空值

时间:2011-05-13 08:40:20

标签: tinymce

我正在使用TinyMCE在我的webapp中创建一个WYSIWYG编辑器。我需要在高级模式下为某些textarea配置它,在某些模式下以简单模式配置它。我正在配置像这样的TinyMCE。

<head>
    <script type="text/javascript">
        tinyMCE.init({
            mode : "textareas",
            theme : "simple",
            editor_selector : "simple"
        });

        tinyMCE.init({
            mode : "textareas",
            theme : "advanced"
        });              
    </script>
</head>

这个配置可以在简单或高级模式下显示TinyMCE,基于textarea的类。

但是,当我提交表单时会出现问题。服务器获取textarea的空白。 (当我只为TinyMCE使用一个配置时不会出现此问题)

我做了一些搜索并遇到了一个建议,说明我应该明确要求TinyMCE在提交之前保存内容。我尝试将此代码添加到我的表单中。

$('#postFeedback').click( function(){
    tinyMCE.triggerSave(true,true);
    alert("TextArea val - " + $('input[name=email]').val() + "- " + $('textarea.simple').val());
    $('form').submit();
});

表单确实已提交,但我遇到了同样的问题。 textarea中的值为空白。我还发出警告(如上所示)来检查textarea的值,它确实是空白的。

首先要提出一些问题:

  • 当我只有一个配置(init)时,TinyMCE工作得非常好。然而,它变得搞砸了我有两个人?有任何线索可能会发生这种情况吗?
  • 是否需要明确要求TinyMCE保存textarea内容?
  • 如何开始调试此问题?

1 个答案:

答案 0 :(得分:1)

您应该在自己的内容中使用mode: "exact",初始化您的编辑器。然后,您可以使用

初始化单个tinymce实例
tinyMCE.execCommand('mceAddControl', false, editorid); //editorid should be the id of the textarea

并且你的inits的配置将被应用(我不知何故感觉有一些非常糟糕的东西使用两个inits为所有tinymce编辑器(因为它看起来他们都被调用所有这些)。

编辑:为了能够使用不同的inits,您应该使用initialization_object而不是编辑器ID来调用mceAddControl。例如:

var config_tinymce_xy = {

    mode: 'exact',
    theme: "advanced",
    content_css : "my.css",
    plugins: "code,...",

    theme_advanced_buttons1 : "code,...",
    theme_advanced_buttons2 : "...",
    ...

};

var config_tinymce_xy2 = {

    mode: 'exact',
    theme: "simple",
    content_css : "my.css",
    ...
};

init_obj = {element_id:'my_editor_id', window: window};
$.extend(true, init_obj, config_tinymce_xy);
tinyMCE.execCommand('mceAddFrameControl',false, init_obj);