2012-08-09 55 views
3

我有Yii形式。有些字段是必需的。當提交表單時,我需要將CSS類「錯誤」添加到文本輸入中。我的代碼:Yii。如何添加css「錯誤」類來輸入表單提交?

  <?php $form=$this->beginWidget('CActiveForm', array(
        'id'=>'contact-form', 
        'enableClientValidation'=>true, 
        'clientOptions'=>array(
          'validateOnSubmit'=>true, 
        ), 
      )); ?> 
      <ul class="contact_form"> 
       <li class="row"> 
        <?php echo $form->labelEx($model,'name'); ?> 
        <?php echo $form->textField($model,'name', array('class'=>'input')); ?> 
        <?php echo $form->error($model,'name'); ?> 
       </li> 
... 

現在我只是得到格錯誤消息:

<div class="errorMessage" id="ContactForm_name_em_" style="">Laukelis „Vardas, pavardė「 negali būti tuščias.</div> 

如何「錯誤」類添加到輸入字段?

回答

3

要具有AJAX驗證還,你應該或多或少增加一些這樣的:

<?php $form=$this->beginWidget('CActiveForm', array(
      'id'=>'contact-form', 
      'enableClientValidation'=>true, 
      'clientOptions'=>array(
       'validateOnSubmit'=>true, 
       'afterValidate' => 'js:function(form, data, hasError) { 
        if(hasError) { 
         for(var i in data) $("#"+i).addClass("error_input"); 
         return false; 
        } 
        else { 
         form.children().removeClass("error_input"); 
         return true; 
        } 
       }', 
       'afterValidateAttribute' => 'js:function(form, attribute, data, hasError) { 
        if(hasError) $("#"+attribute.id).addClass("error_input"); 
         else $("#"+attribute.id).removeClass("error_input"); 
       }' 
     ), 
     )); ?> 
6
<?php echo $form->textField($model,'name', array('class'=>'input' . ($model->getError('name') ? ' error' : ''))); ?> 
+0

它沒有工作..:| – 2012-08-09 12:59:25

+0

這個答案看起來像它應該工作,如果你正在使用常規表單提交,但看起來像你使用AJAX提交和客戶端驗證。我不認爲有一個簡單的方法可以做到這一點,無需編寫自己的AJAX函數來提交或擴展Yii的驗證方法。 。 。 – ernie 2012-08-09 14:14:47