主题: jQuery异步调用KindEditor无法赋值
作者: enki09, 发布日期: 2013-10-14 14:21:46, 浏览数: 8244

操作系统: windowsXP

浏览器版本: IE8

KindEditor版本: 4.1.9

BUG再现步骤:
1.用jQuery的Ajax方法使用异步调用获取数据库里的值
2.在回调函数中将取到的数据赋值给KindEditor,无法显示。

3.如果把Ajax方法异步属性设为false,给KindEditor赋值可以成功显示。


期望结果:
请问在异步调用情况下如何给KindEditor赋值并能正常显示?

 

具体代码如下:

 

$.ajax({
            type: "POST",
            async: true,
            url: "Handler/CompanyInfoHandler.ashx",
            dataType: "JSON",
            data: { Action: "Detail", CID: cid },
            success: function (data) {

                //txtIntroduce为textarea文本框ID,当async: false时赋值后可以正常显示,但设为true时显示不了

                //使用KE.html(id,value)、editor.html(id,value)等方法都不行,也尝试过不用textarea的ID,用

                //该控件的kindeditor对象赋值也不行,显示不了。

                $("#txtIntroduce").val(data.Introduce);
            },
        });




 

作者: Roddy, 发布日期: 2013-10-14 14:53:05
编辑器初始化代码不要写在ajax加载过来的页面里,写在success里就可以。
回复
作者: 小浪子, 发布日期: 2013-10-14 15:57:24
success: function(data) {
    //txtIntroduce为textarea文本框ID,当async: false时赋值后可以正常显示,但设为true时显示不了 
    //使用KE.html(id,value)、editor.html(id,value)等方法都不行,也尝试过不用textarea的ID,用 
    //该控件的kindeditor对象赋值也不行,显示不了。 
    // editor 为KindEditor对象
    editor.html(data.Introduce);
    //$("#txtIntroduce").val(data.Introduce);
}

 

回复
作者: enki09, 发布日期: 2013-10-14 17:37:00

回复Roddy:

编辑器初始化代码本来就没有写在Ajax里边,直接在页面头部的javascript里,也就是页面加载完成后编辑器也初始化了,然后才是取数据库数据、赋值操作的。

回复
作者: enki09, 发布日期: 2013-10-14 17:37:57

回复小浪子:

editor.html(data.Introduce);

这个试过的,提示找不到editor这个对象方法。

回复
作者: 小浪子, 发布日期: 2013-10-14 17:56:10

回复enki09:你不是说你写在头部了吗??难道你定义的对象不是:editor?还是说你没有定义?

 

http://www.kindsoft.net/ke4/examples/default.html

 

回复
作者: Roddy, 发布日期: 2013-10-14 18:16:16
页面只有一个编辑器的话最新版本这样写就可以。
KindEditor.html('#txtIntroduce', data.Introduce);
回复
发表新帖 发表回复