在我的 php 程序中,我在页面加载时以常规方式显示输入表单,或者使用 ajax 调用在对话框中显示输入表单。
有两种方法可以从文本区域创建 CKEditor。要么使用 jQuery
$("#textareaid").ckeditor();
或
window["textareaid"] = CKEDITOR.replace("textareaid");
这两种方法都会在页面加载时或 ajax 调用之后创建富文本编辑器来代替文本区域。没关系。
问题就从这里开始。在这些情况下,CKEditor 启动时不会出现任何控制台错误,但它从不更新 textarea 值并始终发送旧值。
1) 如果我在页面加载时创建文本区域并使用 $("#textareaid").ckeditor();
。 CKEditor 启动正常,没有任何控制台错误,但在常规表单提交上,发送的值为空(旧值)。
2) 如果我在 ajax 调用后创建文本区域并使用 window["textareaid"] = CKEDITOR.replace("textareaid");
。 CKEditor 再次正确启动,但如果我执行 $("form").serialize() 并警告结果,我会看到 textarea 值为空(旧值)。
我现在无法创建演示页面并上传,我知道没有我的代码,没有人会尝试复制此问题(至少我不会,因为我太懒了)
我将准备一个演示页面来为你们复制这个问题,但在那之前我想问这里是否有人遇到了同样的问题并知道原因或找到了解决方案?
谢谢
最佳答案
如果你打电话应该没问题:
CKEDITOR.instances[your instance].updateElement();
eaxmple 中的“您的实例”将只是 textareaid
,因为这就是您在 CKEDITOR.replace()
函数中使用的内容
在序列化表单之前。
几天前遇到了完全相同的问题:)
关于jquery - CKEditor 更新 texarea 值时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7687875/