[英]yii CActiveForm client validation not working on some field
在我的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
“主題”和“消息”是“通知”模型的兩個字段。 在通知模型中,我定義了以下規則:
array('subject, message', 'required')
我的問題是驗證“主題”有效,但驗證“消息”無效! 提交表單后,出現“主題”錯誤消息,但“消息”沒有任何錯誤。 誰能幫我解決這個問題? 我使用Yii 1.1.15
在http://www.yiiframework.com/doc/api/1.1/CActiveForm中,您可以看到示例
<?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
您的消息字段中是否存在HTML屬性"id" => "message"
的原因? Yii CActiveForm為每個字段生成一個特定的HTML id: modelName_fieldName
。
您無需手動設置ID(例如您的主題字段;它沒有ID)。 Yii需要這些ID格式來進行驗證,獲取/發布數據以及執行其他操作(作為client / js函數)。
在您的消息字段中刪除"id" => "message"
,然后再次測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.