我有这样的表格:
<?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
输出:
答案 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']); ?>