切换tinymce编辑器后,它不会发送完整的字符串

时间:2010-07-08 07:37:39

标签: jquery joomla tinymce

我在joomla组件上使用了tinymce编辑器,行为扼杀

在页面加载时,

tinymce已经存在(automaticaaly)..如果我在微小的mce编辑器上写东西(例如:'with tinymce')&amp;然后单击toggle editor按钮(现在出现简单文本区域),如果我附加一些文本(例如:'<p>with tinymce</p>,')并点击提交按钮,我现在看with tinymce but this time toggled然后我只得到post数组中的字符串“with tinymce”,而不是完整的字符串“with tinymce but this time toggled”。

表示如果我在页面上出现tinymce时写一些东西(让'x')然后切换编辑器现在只出现文本区域)并编辑X(让'x + Y')然后点击提交然后我只得到那个字符串在页面上出现微小的mce时写的(意思是我只得到'x',而不是'x + Y')

请告诉我我必须在下面的代码中写一下,以获得完整的字符串,无论是使用tinymce还是不使用tinymce

我的代码在下面给出

jQuery(document).ready(function(){    
jQuery("#add_cat").click(function() {
if(jQuery("#description_parent").is(":hidden")==false){ // if editor is shown then 
    var content = tinyMCE.activeEditor.getContent(); // get the content
    jQuery("#cat_description").val(content); // put it in the textarea
}
});

jQuery("#addCategoryForm").validate({
        rules: {
            category_name: {
                required: true,
                minlength: 2
            },          
            cat_description: "required"
        },
        messages: {
            category_name: {
                required: "Please write category name",
                minlength: "category name must consist of at least 2 characters"
            },
            cat_description:"Please write description"
        }
    });
});
</script>
<form action="" method="post" name="addCategoryForm" id="addCategoryForm"  >    
  <table >
    <tr>
        <th >Category Name :</th>
        <td ><input type="text" name="category_name" id="category_name" size="50"></td>
    </tr>       
    <tr>
       <th valign="top"><span class="mandatory">*</span>Description :</th>
       <td >
    <?php
        $editor =& JFactory::getEditor();
        $params = array('smilies'=> '0' ,'style'  => '0' ,'layer'  => '0' ,'table'  => '0' ,'clear_entities'=>'0');
        $value = isset($this->data['description']) ? $this->data['description'] : '';
        echo $editor->display('cat_description', $value,'400','300','20','20',false, $params);
    ?>
      </td>
    </tr>   
    <tr><td colspan="2"><input type="submit" name="add_cat" id="add_cat" ></td>
  </table>
  <input type='hidden' value='com_advertise' name='option' />
  <input type='hidden' value='advertise' name='controller' />   
  <input type='hidden' value='modifyCategory' name='task' />
  <input type="hidden" value='<?php echo $this->imageid; ?>' name="image_id" /> 
  <input type='hidden' value='<?php echo $this->categoryid; ?>' name='category_id' />   
  <input type="hidden" name="<?php echo JUtility::getToken(); ?>" value="1" />
</form>

1 个答案:

答案 0 :(得分:2)

嗯。 Tinymce使用隐藏的textarea来存储编辑器内容。我只是猜测你的joomla提交没有更新textarea。在这种情况下,您需要在提交之前调用tinymces save功能。它的代码(作为tinymce插件中的事件处理程序)可能如下所示(您可能需要使用另一个适合编辑器的事件而不是onChange):

//call save using an event handler
ed.onChange.add(function(editor, event){
       editor.save();
});

// call save directly without handler
editor_instance = tinymce.EditorManager.getInstanceById('content'); // 'content' is used as default editor id, it might be another id

editor_instance.save();