简而言之:
我正在使用Yii Framework
我的页面上有一个Ckeditor窗口(php / yii框架 - 工作正常)
当我点击一个按钮时,正在生成一个新的CKeditor窗口并通过AJAX调用显示
问题:这个新的CKEditor窗口正确显示存储在数据库中的文本但是:当我点击“保存”(与表格的其余部分一起生成的ajax按钮)时,来自这个新的CKeditor窗口的值将是不保存:CKeditor发回从数据库中获取的旧值。
当我删除Ckeditor并离开普通<textarea>
时:一切正常,所以我知道控制器没问题。
拜托,有没有人经历过这样的事情?
答案 0 :(得分:2)
听起来像是一个典型的后AJAX JS绑定问题。 :)根据出了什么问题,有几种可能性来解决它。
Yii论坛中的这篇文章应该是你的钱,这是我得到大部分建议的地方: http://www.yiiframework.com/forum/index.php?/topic/9341-ckeditor-widget-in-a-cactiveform/
'textarea' ('onclick'=>'CKEDITOR.instances.TEXTAREA_ID.updateElement()',
答案 1 :(得分:2)
您可以在验证之前让CKEDITOR更新textarea,并且clientside / ajax验证将按预期工作:
<?php $form = $this->beginWidget('CActiveForm', array(
'enableAjaxValidation' => true, // one or both
'enableClientValidation' => true, // one or both
'clientOptions' => array(
'validateOnSubmit' => true, // optional
'beforeValidate' => new CJavaScriptExpression('function(form) {
for(var instanceName in CKEDITOR.instances) {
CKEDITOR.instances[instanceName].updateElement();
}
return true;
}'),
),
)); ?>