在我的yii应用程序中,我有一个简单的表单,其中包含两个字段:
<?php
$form = $this->beginWidget('CActiveForm', array(
'id' => 'message-form',
'enableClientValidation' => true,
//'enableAjaxValidation' => true,
'clientOptions' => array(
'validateOnSubmit' => true,
'validateOnChange' => false,
'validateOnType' => false,
'errorCssClass' => 'has-error',
'successCssClass' => 'has-success',
)));
?>
<div class="form-group">
<div class="row">
<div class="col-md-6">
<?php echo $form->labelEx($model, 'subject'); ?>
<?php echo $form->textField($model, 'subject', array('class' => 'form-control')); ?>
<?php echo $form->error($model, 'subject', array('class' => 'alert alert-danger')); ?>
</div>
<div class="col-md-5"></div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-6">
<?php echo $form->labelEx($model, 'message'); ?>
<?php echo $form->textField($model, 'message', array('class' => 'form-control', 'id'=>'message')); ?>
<?php echo $form->error($model, 'message', array('class' => 'alert alert-danger')); ?>
</div>
</div>
</div>
......
//remaining of code
“subject”和“message”是“Notification”模型的两个字段。在通知模型中,我已经定义了这条规则:
array('subject, message', 'required')
我的问题是“主题”作品的验证,但“消息”的验证不起作用! 提交表单后,“主题”的错误消息显示,但“消息”没有任何错误。任何人都可以帮我解决这个问题吗? 我使用Yii 1.1.15
答案 0 :(得分:1)
你可以看到例子
<?php $form = $this->beginWidget('CActiveForm', array(
'id'=>'user-form',
'enableAjaxValidation'=>true,
'enableClientValidation'=>true,
'focus'=>array($model,'firstName'),
)); ?>
<?php echo $form->errorSummary($model); ?>
<div class="row">
<?php echo $form->labelEx($model,'firstName'); ?>
<?php echo $form->textField($model,'firstName'); ?>
<?php echo $form->error($model,'firstName'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'lastName'); ?>
<?php echo $form->textField($model,'lastName'); ?>
<?php echo $form->error($model,'lastName'); ?>
</div>
<?php $this->endWidget(); ?>
我认为你设置了enableAjaxValidation = true
答案 1 :(得分:0)
您的消息字段中是否存在HTML属性"id" => "message"
的原因? Yii CActiveForm为每个字段生成特定的HTML ID:modelName_fieldName
。
您无需手动设置ID(例如您的主题字段;它没有id)。 Yii需要这些格式的id进行验证,获取/发布数据以及更多内容(作为client / js函数)。
删除邮件字段中的"id" => "message"
并重新测试。