Quantcast
Channel: Yii Framework Forum
Viewing all articles
Browse latest Browse all 18717

Ajax Validation Doesn't Work

$
0
0
Hi. From two weeks i work in Yii. I have a big problem, ajax validation doesn't work! I include jquery, set all options but it doesn't help. I have that:
controllers/SiteController.php:
        public function actionContact()
        {
                $model=new ContactForm;
                if(isset($_POST['ContactForm']))
                {
                        $model->attributes=$_POST['ContactForm'];
                        if($model->validate())
                        {
                                $name='=?UTF-8?B?'.base64_encode($model->name).'?=';
                                $subject='=?UTF-8?B?'.base64_encode($model->subject).'?=';
                                $headers="From: $name <{$model->email}>\r\n".
                                        "Reply-To: {$model->email}\r\n".
                                        "MIME-Version: 1.0\r\n".
                                        "Content-type: text/plain; charset=UTF-8";

                                mail(Yii::app()->params['adminEmail'],$subject,$model->body,$headers);
                                Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.');
                                $this->refresh();
                        }
                }
                $this->render('contact',array('model'=>$model));
        }



views/contact.php:
<?php $this->title='Kontakt'; ?>
<?php $contact = new ContactForm(); ?>
<table cellspacing="0">
    <tbody>
        <?php $form=$this->beginWidget('CActiveForm', array(
                'id'=>'contact-form',
                'enableAjaxValidation' => true,
                'enableClientValidation'=>true,
                'clientOptions'=>array(
                    'validateOnSubmit' => true,
                    'validateOnChange' => true,
                    'validateOnType' => true
                ),
        )); ?>

                <p class="note">Fields with <span class="required">*</span> are required.</p>

                <?php echo $form->errorSummary($model); ?>

                <tr>
                        <?php echo $form->labelEx($model,'name'); ?>
                        <?php echo $form->textField($model,'name'); ?>
                        <?php echo $form->error($model,'name'); ?>
                </tr>

                <tr>
                        <?php echo $form->labelEx($model,'email'); ?>
                        <?php echo $form->textField($model,'email'); ?>
                        <?php echo $form->error($model,'email'); ?>
                </tr>

                <tr>
                        <?php echo $form->labelEx($model,'subject'); ?>
                        <?php echo $form->textField($model,'subject',array('size'=>60,'maxlength'=>128)); ?>
                        <?php echo $form->error($model,'subject'); ?>
                </tr>

                <tr>
                        <?php echo $form->labelEx($model,'body'); ?>
                        <?php echo $form->textArea($model,'body',array('rows'=>6, 'cols'=>50,'class'=>'textarea2')); ?>
                        <?php echo $form->error($model,'body'); ?>
                </tr>

                <?php if(CCaptcha::checkRequirements()): ?>
                <tr>
                        <?php echo $form->labelEx($model,'verifyCode'); ?>
                        <div>
                        <?php $this->widget('CCaptcha'); ?>
                        <?php echo $form->textField($model,'verifyCode'); ?>
                        </div>
                        <div class="hint">Please enter the letters as they are shown in the image above.
                        <br/>Letters are not case-sensitive.</div>
                        <?php echo $form->error($model,'verifyCode'); ?>
                </tr>
                <?php endif; ?>

                <tr>
                        <?php echo CHtml::submitButton('',array('class'=>'submit submit_okay')); ?>
                </tr>

        <?php $this->endWidget(); ?>   
    </tbody>
</table>



views/layout/main.php:
 ...
<?php Yii::app()->clientScript->registerCoreScript('jquery'); ?>
 ...


Validation work only after submit. In debug tool there aren't any ajax request. Where I make mistake?

Viewing all articles
Browse latest Browse all 18717

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>