Yii-Booster и TbForm

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
delfi
Сообщения: 21
Зарегистрирован: 2012.07.19, 07:20

Yii-Booster и TbForm

Сообщение delfi »

Столкнулся с проблемой, что при использовании TbForm - не работает любая валидация на клиенте.

Переделываю на обычный CForm - все работает.


Конфиг для TbForm

Код: Выделить всё


<?php
return array(
    'title'                => 'Пожалуйста, представьтесь',
    'showErrorSummary'     => FALSE,
    'id'                   => 'products-form',
    'activeForm'           => array(
        //'class'                => 'TbActiveForm',
        //'enableAjaxValidation' => TRUE,
        'enableClientValidation' => true,
        'clientOptions'        => array(
            'validateOnSubmit' => TRUE,
            'validateOnChange' => TRUE,
            'validateOnType'   => TRUE,
        ),
    ),
   
    'elements'             => array(
        'name'       => array(
            'type'     => 'text',
            'maxlength'=> 32,
        ),
    ),
    'buttons'              => array(
        'create'=> array(
            'type' => 'submit',
            'label'=> $this->model->isNewRecord ? 'Создать' : 'Обновить',
            //'scenario' => 'create',
        ),
    ),
);
 
Контроллер

Код: Выделить всё

public function actionTest2() {
        $model = new Products;
        $model->isNewRecord = false;
        $this->performAjaxValidation($model);
        
        Yii::import('bootstrap.widgets.TbForm');
        $form = TbForm::createForm('application.forms.productsForm' , $model);
        //$form = new CForm('application.forms.productsForm', $model);
        //var_dump($form);
        
        if(isset($_POST['Products'])) {
            $model->attributes=$_POST['Products'];
            if($model->save())
                $this->redirect(array('view','id'=>$model->id));
        }
        
        $this->render('test', array('form'=> $form));
    }
 
Вьюха

Код: Выделить всё

<?php
//var_dump($form);
echo $form->render();
 
Пробовал различные вариации настроек.
При включенной ajax валидации - данные даже не уходят на сервер, идет сразу перегрузка страницы.

В чем может быть проблема? По идее пишут, что TbForm должен поддерживать эти настройки, да и по сути он наследуется от CForm
Ответить