Jquery CKEditor更新texarea值时出现问题

Jquery CKEditor更新texarea值时出现问题,jquery,textarea,ckeditor,Jquery,Textarea,Ckeditor,在我的php程序中,我可以在页面加载时以常规方式显示输入表单,也可以使用ajax调用在对话框中显示输入表单 有两种方法可以从textarea创建CKEditor。或者使用jQuery $("#textareaid").ckeditor(); 或 在这两种情况下,无论是在页面加载时还是在ajax调用后,这两种方法都会在我的文本区域中创建我的富文本编辑器。那很好 问题从这里开始。在这些情况下,CKEditor启动时没有任何控制台错误,但它从不更新textarea值并始终发送旧值 1如果我在页面加载

在我的php程序中,我可以在页面加载时以常规方式显示输入表单,也可以使用ajax调用在对话框中显示输入表单

有两种方法可以从textarea创建CKEditor。或者使用jQuery

$("#textareaid").ckeditor();

在这两种情况下,无论是在页面加载时还是在ajax调用后,这两种方法都会在我的文本区域中创建我的富文本编辑器。那很好

问题从这里开始。在这些情况下,CKEditor启动时没有任何控制台错误,但它从不更新textarea值并始终发送旧值

1如果我在页面加载时创建textarea并使用$textareaid.ckeditor;。CKEditor在没有任何控制台错误的情况下启动ok,但在常规表单提交时,发送的值是空的旧值

2如果我在ajax调用后创建textarea并使用window[textareaid]=CKEDITOR.replacetextareaid。同样,CKEditor正确启动,但如果我执行$form.serialize并警告结果,我会看到textarea值是空的旧值

我现在无法创建演示页面并上传,我知道没有我的代码,没有人会试图复制这个问题,至少我不会,因为我太懒了

我将为你们准备一个演示页面来复制这个问题,但在此之前,我会问这里是否有人面临同样的问题,并知道原因或找到了解决方案


谢谢

如果您打电话给:

 CKEDITOR.instances[your instance].updateElement();
eaxmple中的“您的实例”将只是textareaid,因为这是您在CKEDITOR.replace函数中使用的

在序列化表单之前


前几天我遇到了完全相同的问题:

我刚刚经历了同样的症状,这似乎与使用id为textarea选择对象而不是使用jQuery adapter选择名称有关。 jQuery适配器上的参考资料确实指出,当它是一个textarea时,它会自动将该值发送回,因此它可能无法使用jQuery$myTextarea.ckeditor正确验证为一个textarea

如果要保留id选择器,一个选项是在提交表单时将值发送到的最终表单字段名中使用隐藏字段。
$myHiddenField.val$myTextarea.val

通过replace加载编辑器后,可以添加此行

CKEDITOR.instances.textAreaClientId.on('blur', function() CKEDITOR.instances.textAreaClientId.updateElement();});

我从来没有遇到过这个问题。如果您使用Firebug检查textarea并同时键入textarea,您是否看到您的文本被添加到标记之间?@Chris G。Chrome和Firfox CKEditor都不会在textarea标记之间更新数据。我还检查了CKEditor的实际示例文件,它们也没有更新。@ergec你尝试过我的解决方案吗?我的解决方案仍然不起作用,它说的是Uncaught TypeError:无法读取undefined@HabibRehman抱歉的属性'updateElement',但这个答案是从2011年10月开始的。。。我认为您应该研究更多当前的富文本编辑器:谢谢。这正是我的问题。我刚刚为ajax输入了一个序列化,之前我只是通过POST发送表单。这是一个很难发现的错误。
CKEDITOR.instances.textAreaClientId.on('blur', function() CKEDITOR.instances.textAreaClientId.updateElement();});