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

时间:2015-07-08 06:55:13

标签: php html forms yii widget

我有这样的表格:

<?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

输出: enter image description here

2 个答案:

答案 0 :(得分:4)

这不是摘要的工作原理。

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

这样做的原因是,总结也用于前端验证。 javascript将在需要时更新并隐藏/显示div

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

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

摆脱额外的if(!empty($errorMsg)) ...

答案 1 :(得分:0)

您可以更改此类:

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