Php 部分ajax验证yii表单

Php 部分ajax验证yii表单,php,javascript,yii,Php,Javascript,Yii,我有以下场景,我在yii上创建了一个表单,并使用javascript和css将表单拆分为多个步骤,所有这些都在一个表单中,但在视觉上拆分为多个步骤,现在我已经设置了ajax验证,它工作得很好,问题是,当我单击“下一步”按钮转到表单的下一步时,我想在进入下一步之前,“ajax验证”该特定步骤的字段,诸如此类,有什么想法吗 顺便说一句,我使用的是标准的Yii CActiveForm ajax验证: $form = $this->beginWidget('CActiveF

我有以下场景,我在yii上创建了一个表单,并使用javascript和css将表单拆分为多个步骤,所有这些都在一个表单中,但在视觉上拆分为多个步骤,现在我已经设置了ajax验证,它工作得很好,问题是,当我单击“下一步”按钮转到表单的下一步时,我想在进入下一步之前,“ajax验证”该特定步骤的字段,诸如此类,有什么想法吗

顺便说一句,我使用的是标准的Yii CActiveForm ajax验证:

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

此扩展可能对您有所帮助


最后,我根据yii的ajax请求的响应执行了一些javascript函数来检查.error类,当我们单击next按钮时,我们将进行如下检查

            $(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
            }

包含代码示例将增加响应的可能性。需要更多。是否足够查看表单的至少两个部分;以及您正在调用的控制器操作。表单与此非常相似,我在控制器代码中有以下内容:if(Yii::app()->getRequest()->getIsAjaxRequest()){echo CActiveForm::validate(数组($model));Yii::app()->end();}