【问题标题】:Yii 2 CKeditor not passing through validationYii 2 CKeditor 未通过验证
【发布时间】:2015-03-19 11:56:00
【问题描述】:

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

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

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

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

第一次提交就通过了。

有人可以帮忙吗?

提前致谢。

【问题讨论】:

    标签: ckeditor yii2


    【解决方案1】:

    发生这种情况是因为此类插件的工作方式。它会生成额外的 HTML 标记,将实际的文本区域隐藏并留空。将在提交表单时填写。

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

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

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

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

    this question 为例,但我不知道它是否适用于您使用该 Yii2 扩展的版本。

    也许现在有一些更高级的选项,所以你不必自己写。

    【讨论】:

    • 对不起,我试图投票,但它说需要 15 名声望,我仍然在 14 岁.. 会在我达到 15 岁时这样做!
    【解决方案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

    【讨论】:

      猜你喜欢
      • 2014-01-12
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-27
      • 2012-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多