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

Dre*_*TeK 5 javascript vb.net asp.net jquery ckeditor

脚本

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

TEXTAREA

<asp:CKEditorControl ID="txtMailBody" CssClass="CKE" RunAt="Server" BasePath="~/Editor"/>
Run Code Online (Sandbox Code Playgroud)

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

javascript完美地填充任何textarea.

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

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

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

dav*_*rad 14

使用

CKEDITOR.instances['txtMailBody'].setData(result);
Run Code Online (Sandbox Code Playgroud)

代替

$('.CKE').val(result);
Run Code Online (Sandbox Code Playgroud)

..当您更新CKEditored'textarea.


试试这个小小的演示:

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

<select id="test">
<option>some text to be inserted</option>
<option>some other text</option>
<option>even more text</option>
</select>
Run Code Online (Sandbox Code Playgroud)

成为CKEditor实例的textarea

<textarea id="txtMailBody"></textarea>
Run Code Online (Sandbox Code Playgroud)

脚本

//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);
});
Run Code Online (Sandbox Code Playgroud)

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