2015-01-08 3 views
0

작동하지 :YII CActiveForm 클라이언트 유효성 검사가이 같은 두 개의 필드가 포함 된 간단한 양식이 내 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"에 대한 유효성 검사가 작동하지 않습니다! 양식을 제출 한 후 "제목"오류 메시지가 나타나지만 "메시지"에는 오류가 없습니다. 아무도 내가이 문제를 해결할 수 있습니까? 나는 내가 u를 설정 생각 YII가 http://www.yiiframework.com/doc/api/1.1/CActiveForm에서 1.1.15

+1

메시지 필드에 HTML 속성 ID "message"가있는 이유는 무엇입니까? Yii CActiveForm은 특정 ID를 생성합니다 : modelName_fieldName, id를 설정하지 않아도됩니다 (예 : subject 필드와 같이 ID가 없습니다). YII는 유효성 검사 및 그 이상의 것들에 대해 이러한 형식의 ID가 필요합니다. 메시지 필드에서 ID를 제거하고 다시 테스트하십시오. –

+0

예 :) 맞습니다. 해결, 당신의 의견을 보내 주셔서 감사합니다 :) – hamed

+0

Nice! 귀하의 수락을위한 답변으로 게시하고 질문을 닫습니다. –

답변

0

메시지 필드에 HTML 속성 "id" => "message" 이유가 있습니까? Yii CActiveForm은 각 필드에 대해 특정 HTML ID : modelName_fieldName을 생성합니다.

수동으로 ID를 설정할 필요는 없습니다 (제목 필드와 같이 ID가 없습니다). Yii는 유효성 확인을 위해 이러한 형식의 ID를 필요로하며 데이터를 가져 오거나 게시하는 등의 작업을 클라이언트/js 함수로 필요로합니다.

메시지 필드에서 "id" => "message"을 제거하고 다시 테스트하십시오.

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 =