【问题标题】:ckeditor content into textarea on change event - multiple ckeditors on formckeditor 内容在更改事件时进入 textarea - 表单中有多个 ckeditor
【发布时间】:2014-03-30 14:04:59
【问题描述】:

在很多帮助下,我终于得到了 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 文本区域?

【问题讨论】:

    标签: jquery ckeditor


    【解决方案1】:

    对于您要在页面上安装的每个 ckeditor 实例,将以下代码添加到您的 jquery 脚本中:


    CKEDITOR.instances['id_of_text_area'].on('change', function() { CKEDITOR.instances['id_of_text_area'].updateElement() });
    


    上面的 JavaScript 应该替换我在原始问题中显示的代码。

    我希望这会对某人有所帮助。

    【讨论】:

    • 最后,你是唯一一个在互联网上发布的答案的人。
    【解决方案2】:

    如果您将 textarea 元素替换为 类名,只需这样做:

    CKEDITOR.on('instanceReady', function(event) {
        var editor = event.editor;
    
        editor.on('change', function(event) {
            // Sync textarea
            this.updateElement();
        });
    });
    

    【讨论】:

      【解决方案3】:

      您编写的代码一次只会更新一个 CKEditor 的 textarea,因为它会向每个 CKEditor 添加一个更改事件。所以这总是会更新最后一个被改变的元素。

      我处理多个 CKEditor 更新的方式是在提交表单时使用此代码

      for (var i in CKEDITOR.instances) {
         CKEDITOR.instances[i].updateElement();
      }
      

      【讨论】:

      • 谢谢,但当用户在 CKEditor 中输入数据时,当表单上有超过 1 个 CKEditor 时,我需要 CKEditor 更新每个关联的文本区域 - 而不是在我提交表单时。有什么想法吗?
      猜你喜欢
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-05
      • 2015-03-12
      • 2011-03-16
      • 1970-01-01
      相关资源
      最近更新 更多