CActiveForm в renderPartial

А подскажите плиз, где и кем генериуруются строчки JS для аякс-валидация форм:




jQuery(document).ready(function() {

$('#my-form').yiiactiveform(...);

}); 



и как их принудительно сгенерить?

Общая задача такая - мне аяксом надо подгрузить форму, которая тоже должна валидироватся аяксом :)

Подгружаю я обычно:




        jQuery.ajax({

            'type':'GET',

            'url': '<?=$this->createAbsoluteUrl('items/newline');?>',

            'cache':false,

            'success':function(html)

            {

                $('#positions').append(html);

            }

        });




в items/newline вызываю




        $this->renderPartial("newline", array('model' => $model));



форма появляется там где нужно, но вот эта строчка не генерируется (yiiactiveform…)

Форме поставлены enable-ajax-validation: true

Строчки с yiiactiveform генерируются виджетом CActiveForm с помощью функции Yii::app()->clientScript->registerScript (см. framework\web\widgets\CActiveForm.php, метод run()).

Если этот скрипт не отдается в ответе аякса, то, скорее всего, не вызывается processOutput (который как раз и добавляет все зарегистрированные скрипты).

Попробуйте вместо вызова




  $this->renderPartial("newline", array('model' => $model));



написать




  //последний параметр отвечает за вызов processOutput

  $this->renderPartial("newline", array('model' => $model), false, true);



Другой вариант - если вьюха newline используется только для аякса, можно дописать прямо в нее скрипт, вешающий activeform, что то типа:




<script type="text/javascript">

$('#formId').yiiactiveform({опции});

</script>