从 WYSIWYG CKEditor 传递 textarea 值

Posted

技术标签:

【中文标题】从 WYSIWYG CKEditor 传递 textarea 值【英文标题】:Pass textarea value from WYSIWYG CKEditor 【发布时间】:2014-03-15 09:44:46 【问题描述】:

我正在尝试将我在所见即所得编辑器(CK 编辑器)中所做的输入传递给 JQuery。目前,无论我输入什么,它都是空白的。

html

<textarea type='text' class="ckeditor reply"  name='reply'></textarea>
<button type="button" STYLE="align: right;" class="btn btn-info reply_button yGreenButton">Submit Reply</button>

JS:

<script>
$(function()

    $('.reply_button').click(function()

        var reply=$(this).siblings('.reply').val();

    );
);
</script>

文本区域显示为 CKeditor。无论我在 CKeditor textarea 中放什么,单击reply_button 发出的当前值都是空白的。如何让我输入的实际内容得到提醒?

非常感谢您的建议。

最好的,

【问题讨论】:

【参考方案1】:

这是一个CKEditor,你必须使用他们的API:

var editor = CKEDITOR.replace( '.ckeditor' );
editor.getData();

API 文档可以在here 找到。

【讨论】:

谢谢,但不幸的是它不起作用。原因是我实际使用了 class="ckeditor" 来替换 textarea,因此 editor.getData() 无法返回该值;它显示“未定义”错误【参考方案2】:

你有两个选择——你可以直接使用 CKEditor API,或者 CKEditor 的 jQuery 适配器。

要直接使用 CKEditor API,您需要编辑器实例。您可以使用相关textareaidname 或自动生成的名称('editor1'、'editor2' 等)从CKEDITOR.instances 对象中获取它。在你的情况下:

var editor = CKEDITOR.instances.reply;
var val = editor.getData();

要使用 jQuery 适配器,您需要在 ckeditor.js 之后加载 adapters/jquery.js 文件,然后您可以轻松检索值:

var val = $( '.ckeditor' ).val();

就像您使用普通的textarea 一样。在jQuery adapter guide 中阅读更多内容并查看CKEditor with jQuery sample。

【讨论】:

以上是关于从 WYSIWYG CKEditor 传递 textarea 值的主要内容,如果未能解决你的问题,请参考以下文章

CKEditor 5 - 如何插入一些 HTML(又名源模式在哪里)?

rails使用bootstrap3-wysiwyg可视化编辑器并实现自定义图片上传插入功能

ckeditor在保存时弄乱了代码

将变量从 Rmd/YAML 标头传递到 before_body .tex

用 jQuery 同步 CKEditor 和 TEXTAREA

CKEDITOR:从Javascript中的多个实例名称中获取数据