6

脚本

$('.DDL').change(function update() {
    $.get('../Folder' + $(this).val() + '.html', function(result) {  
        $('.CKE').val(result);
    });
});

文本区域

<asp:CKEditorControl ID="txtMailBody" CssClass="CKE" RunAt="Server" BasePath="~/Editor"/>

我有一些 jscript 可以根据他们的选择用相关内容填充我的文本区域。

javascript 可以完美地填充任何文本区域。

当我的 textarea 是我的 ckeditor 时,它不起作用。

检查页面显示正在添加内容,但 ckeditor 不显示它。刷新页面也会导致内容出现。

问题

如何使 CKEditor textarea 刷新/更新以显示已从下拉列表中即时添加的客户端代码?

4

1 回答 1

19

利用

CKEDITOR.instances['txtMailBody'].setData(result);

代替

$('.CKE').val(result);

..当您更新 CKEditored 的文本区域时。


试试这个小演示:

选择要插入文本片段的框:

<select id="test">
<option>some text to be inserted</option>
<option>some other text</option>
<option>even more text</option>
</select>

成为 CKEditor 实例的文本区域

<textarea id="txtMailBody"></textarea>

脚本

//create the CKEditor instance
CKEDITOR.replace("txtMailBody"); 

$("#test").change(function() {
    var result = $("#test option:selected").text();
    //HERE
    CKEDITOR.instances['txtMailBody'].setData(result);
    //instead of $(textarea).val(result);
});

当然,只有当目标是您应该使用的 CKEditor 时CKEDITOR.instances['txtMailBody'].setData(result);,否则 - 如果它是 textarea,请使用您已有的代码。

于 2013-09-03T11:34:26.583 回答