在变更事件中将ckeditor内容发送到textarea – 表单上的多个ckeditors
在很多帮助下,我终于让CKEditor更新了相关的文本区域。 请看这里的post 。
但是,当表单上有超过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文本区域?
对于要在页面上安装的每个ckeditor实例,请将以下代码添加到jquery脚本中:
CKEDITOR.instances['id_of_text_area'].on('change', function() { CKEDITOR.instances['id_of_text_area'].updateElement() });
上面的JavaScript应该替换我在原始问题中显示的代码。
我希望这对一些人有所帮助。
如果您按类名替换textarea元素,只需执行以下操作:
CKEDITOR.on('instanceReady', function(event) { var editor = event.editor; editor.on('change', function(event) { // Sync textarea this.updateElement(); }); });
您编写的代码将一次仅更新一个CKEditor的textarea,因为它正在向每个CKEditor添加更改事件。 因此,这将始终更新已更改的最后一个元素。
我处理多个CKEditor更新的方法是在提交表单时使用此代码
for (var i in CKEDITOR.instances) { CKEDITOR.instances[i].updateElement(); }