我在joomla组件上使用了tinymce编辑器,行为扼杀
在页面加载时, tinymce已经存在(automaticaaly)..如果我在微小的mce编辑器上写东西(例如:'with tinymce
')&然后单击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>
答案 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();