如何以红色显示表单 errorSummary()?

How to show form errorSummary() in red?

我有这个表格:

<?php 
   $form = $this->beginWidget('CActiveForm', array(
            'id' => 'login-form',
            'enableClientValidation' => true,
            'clientOptions' => array(
                'validateOnSubmit' => true,
            ),
        ));


    $errorMsg = $form->errorSummary($userModel, "", "");

    if(!empty($errorMsg))
    {
        echo '<div class="alert alert-danger" style="text-align:center; width:800px; margin:auto;">' . $errorMsg . '</div>';
         echo '<br>';
     }

    $form->labelEx($userModel, 'email');
    echo $form->textField($userModel, 'email');
    $form->error($userModel, 'email');
?>

我试图在电子邮件无效时打印错误消息,但我想使用 bootstrap 中的红色背景打印它。问题是没有任何错误它仍然显示红色条。

这似乎是因为 errorSummary() 从来都不是真正的 null


输出:

摘要不是这样的。

errorSummary()-功能总是returns要添加到页面的内容。
如果没有错误,该函数确保返回的 div 被标记为隐藏。

这样做的原因是摘要也可以用于前端验证。 javascript 会在需要时更新,hide/show 会更新 div

所以基本上你应该这样做:

echo $form->errorSummary($userModel, "", "", array('class' => "alert alert-danger"));

并去掉多余的if(!empty($errorMsg)) ...

您可以这样更改 class:

<?= $form->errorSummary($model, ['class' => 'alert alert-danger']); ?>