Yii 2 CKeditor未通过验证

时间:2015-01-21 03:31:39

标签: ckeditor yii2

我在Yii 2高级平台上从https://github.com/2amigos/yii2-ckeditor-widget安装了ckeditor。

安装成功。但是当我点击提交时,它没有通过验证检查,并且会说明"描述不能为空白"即使里面有内容。当我第二次点击提交按钮时,数据通过了。

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

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

它首先提交了。

有人可以帮忙吗?

提前致谢。

2 个答案:

答案 0 :(得分:5)

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

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

要么在表单中禁用它,请执行以下操作:

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

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

请在this question查看示例,但我不知道它是否适用于您使用该Yii2扩展程序的版本。

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

答案 1 :(得分:2)

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

$('#myform').on('beforeValidate', function (event, messages, deferreds) {
    for(var instanceName in CKEDITOR.instances) { 
        CKEDITOR.instances[instanceName].updateElement();
    }
    return true;
}

基于Yii 1解决方案:https://stackoverflow.com/a/28876719/729324

根据:https://github.com/yiisoft/yii2/blob/95cdd0905d26bf9e64211238b4a2a698d8d047d2/framework/UPGRADE.md

转换