Yii 2 CKeditor未通过验证

Yii 2 CKeditor未通过验证,ckeditor,yii2,Ckeditor,Yii2,我在Yii 2高级平台上安装了来自的ckeditor 安装成功。但是,当我单击“提交”时,它没有通过验证检查,并且将声明“说明不能为空”,即使其中包含内容。当我第二次点击提交按钮时,数据通过了 模型中的内部规则此字段为必填字段。当我删除ckeditor并直接使用 <?php echo $form->field($model, 'MY_DESC'); ?> 第一次提交就通过了 有人能帮忙吗 提前感谢。这是因为这些插件的工作方式。它生成额外的HTML标记,使实际的文本区域隐藏

我在Yii 2高级平台上安装了来自的ckeditor

安装成功。但是,当我单击“提交”时,它没有通过验证检查,并且将声明“说明不能为空”,即使其中包含内容。当我第二次点击提交按钮时,数据通过了

模型中的内部规则此字段为必填字段。当我删除ckeditor并直接使用

<?php echo $form->field($model, 'MY_DESC'); ?>

第一次提交就通过了

有人能帮忙吗


提前感谢。

这是因为这些插件的工作方式。它生成额外的HTML标记,使实际的文本区域隐藏并为空。将在提交表格时填写

很可能您正在使用客户端验证(默认情况下已启用)。它显然是直接检查textarea,不知道真正的内容存储在哪里

在表单中禁用它,如下所示:

<?php ActiveForm::begin(['enableClientValidation' => false]); ?>

或者寻找一些与textarea同步的方法

举个例子,但我不知道它是否能在您使用的Yi2扩展版本中工作


现在可能存在一些更高级的选项,因此您不必自己编写。

您可能可以使用以下解决方案(未经测试):

基于Yii 1解决方案:


转换依据:

抱歉,我试图提高投票率,但上面说需要15个声誉,而我仍然是14。。我一到15岁就做!
$('#myform').on('beforeValidate', function (event, messages, deferreds) {
    for(var instanceName in CKEDITOR.instances) { 
        CKEDITOR.instances[instanceName].updateElement();
    }
    return true;
}