Yii-проверка на стороне клиента не работает на CActiveForm

У меня есть активная форма в моем приложении. Но проверка на стороне клиента не работает. Код формы показан ниже:

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'application-data-student-form',
    'enableAjaxValidation'=>false,
    'enableClientValidation'=>true,
    'clientOptions'=>array('onSubmit'=>true),
    'htmlOptions'=>array(
        'enctype'=>'multipart/form-data',
        'role'=>'form',
        'class'=>'form-horizontal'
    ),
)); ?>

Я использовал bootstrap 3 в своем проекте. Любая идея или решение будет высоко оценено кем угодно. . .


person dlthp    schedule 03.06.2014    source источник
comment
Можете ли вы показать полный код представления, метод модели rules и код действия контроллера?   -  person Goodnickoff    schedule 03.06.2014
comment
Контроллер и модели генерируются crud. так что думаю с ними проблем нет. Я просто хочу проверить наличие обязательных полей.   -  person dlthp    schedule 03.06.2014
comment
А как насчет просмотра (как вы создаете поля формы)?   -  person Goodnickoff    schedule 03.06.2014
comment
Поля формы также генерируются crud. И я использую бутстрап в своем проекте. Влияет ли это на файлы js по умолчанию?   -  person dlthp    schedule 03.06.2014
comment
Какое расширение (для начальной загрузки) вы используете?   -  person Goodnickoff    schedule 03.06.2014
comment
Убедитесь, что все файлы js, необходимые для проверки (jquery.yiiactiveform.js), присутствуют на странице и не конфликтуют! Осмотрите поджигателем!   -  person Dency G B    schedule 03.06.2014


Ответы (2)


Я наконец решил проблему. Я публикую это, чтобы это могло помочь кому-то с той же проблемой.

Проблема возникла из-за неправильной загрузки jquery.js в приложении. Отсутствовал файл карты, необходимый для jquery.js. Поэтому я загрузил последнюю версию jquery 2.1.1.min.js и соответствующий файл карты с [http://jquery.com/download/%5d и загрузил их в основной макет. Теперь проверка, наконец, работает.

Надеюсь, что этот обходной путь поможет кому-то с такой же проблемой.

person dlthp    schedule 04.06.2014

Попробуйте добавить в действие модели что-то вроде этого:

if (Yii::app()->request->isAjaxRequest){
    echo CActiveForm::validate($model);
    Yii::app()->end();
}

или раскоментируйте эту строку

// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
person mosvov    schedule 03.06.2014
comment
Я не использую проверку ajax. Следовательно, вышеуказанный подход может быть не причиной. . . - person dlthp; 03.06.2014