如何使客户端更改导致CKEditor textarea刷新/更新?

时间:2013-09-03 11:10:57

标签: javascript jquery asp.net vb.net ckeditor

SCRIPT

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

TEXTAREA

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

我有一些jscript根据他们的选择用相关内容填充我的textareas。

javascript完美地填充任何textarea。

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

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

问题

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

1 个答案:

答案 0 :(得分:13)

使用

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

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

..更新CKEditored'textarea。


试试这个小小的演示:

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

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

成为CKEditor实例的textarea

<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,请使用您已有的代码。