2013-07-17 5 views
1

У меня есть следующая сценария: я создал форму на yii и разбил форму на несколько шагов, используя javascript и css, все это в одной форме, но визуально разбито на шаги, теперь я установил ajax validation которая работает отлично, проблема в том, что когда я нажимаю кнопку «Далее», чтобы перейти к следующему шагу формы, я бы хотел «ajax validate» поля для этого конкретного шага, прежде чем перейти к следующему шагу и так далее , есть идеи?partial ajax validation yii forms

BTW, я использую стандартный Yii виджет CActiveForm АЯКС проверки:

  $form = $this->beginWidget('CActiveForm', array(
       'id' => 'formElem', 
       'enableAjaxValidation' => true, 
       'clientOptions' => array('validateOnSubmit' => true), 
        )); 
+0

Включая код образцы увеличивают вероятность ответа. – eebbesen

+0

Нужно больше, чем это. Как насчет того, чтобы увидеть как минимум два раздела формы; плюс действия контроллера, которые вы вызываете. – jmarkmurphy

+0

форма очень похожа на эту http://tympanus.net/Tutorials/FancySlidingForm/, и у меня есть это на коде контроллера: if (Yii :: app() -> getRequest() -> getIsAjaxRequest()) { echo CActiveForm :: validate (массив ($ model)); Yii :: app() -> end(); } – CodeArtist

ответ

0

я в конечном итоге делает некоторые JavaScript функции, чтобы проверить класс .error на основе ответа от AJAX запроса Yii; когда мы нажимаем кнопку Далее мы проверить, как следовать

  $(this).closest("fieldset").each(function(){ 

       $('input').blur(); //This Will trigger yii's CActiveForm ajax requests and return class .error or .success 

      }); 

      var errchk = $(this).closest('fieldset').find('.error').length; 

      /* Here we check for validation before moving to next step*/ 
      if(errchk){ 
       alert("Please Complete all Required fields!"); 

       return false; 
      }else{ 

       void(0); //continue to slide 
      }