在很多帮助下,我终于让CKEditor更新了相关的文本区域。 See the post here
但是,当表单上有超过1个CKEditor时,我很难理解如何让CKEditor更新每个相关的文本区域。
这是我目前拥有的jquery。它仅更新表单上的最后一个CKEditor关联文本区域:
for (var i in CKEDITOR.instances) {
CKEDITOR.instances[i].on('change', function() { CKEDITOR.instances[i].updateElement() }); //update the relative hidden textarea.
}
当表单上有5个或10个CKEditor时,如何更新每个关联的CKEditor文本区域?
答案 0 :(得分:12)
对于要在页面上安装的每个ckeditor实例,将以下代码添加到jquery脚本中:
CKEDITOR.instances['id_of_text_area'].on('change', function() { CKEDITOR.instances['id_of_text_area'].updateElement() });
以上JavaScript应该替换我在原始问题中显示的代码。
我希望这会对某人有所帮助。
答案 1 :(得分:4)
如果您用类名替换textarea元素,只需执行以下操作:
CKEDITOR.on('instanceReady', function(event) {
var editor = event.editor;
editor.on('change', function(event) {
// Sync textarea
this.updateElement();
});
});
答案 2 :(得分:3)
您编写的代码将一次仅更新一个CKEditor的textarea,因为它正在向每个CKEditor添加更改事件。因此,这将始终更新已更改的最后一个元素。
我处理多个CKEditor更新的方法是在提交表单时使用此代码
for (var i in CKEDITOR.instances) {
CKEDITOR.instances[i].updateElement();
}