2013-05-30 5 views
6

Я разрабатываю проект с Yii.jQuery (...). Activeform не является функцией в Yii

Мне нужно использовать jquery ui на многих страницах сайта. Поэтому я добавляю библиотеку ядра jquery и библиотеку jquery ui в макет сайта, чтобы иметь доступ к ним на всех страницах.

Но это вызывает проблемы на страницах, которые имеют форму (активная форма). Я вижу эту ошибку на firebug:

jQuery(...).activeform is not a function 

Почему это так? Как я могу это решить?

спасибо.

+0

Вы добавили плагин activeform.js jQuery? –

+2

Это называется 'yiiactiveform', а не только' activeform'. – Jon

+0

Просто узнал то же, что сделал Джон. Это yiiactiveform. ;) –

ответ

11

Если вы включили ядро ​​библиотеки jQuery вручную в свой файл макета, возможно, что jQuery будет загружен второй раз и переопределит исходный объект jQuery, в который были подключены подключаемые модули Yii.

Вместо этого вы должны использовать Yii::app()->clientScript->registerCoreScript('jquery.ui').

+0

Где я должен добавить эту строку – Tauseef

+0

Вопрос был о файле макета, поэтому вы искали бы какой-нибудь файл в 'protected/views/layouts'. –

0

Возможно, вы дважды загрузили jquery на свою страницу, пожалуйста, проверьте свой код в макете/main.php и где когда-либо вы зарегистрировали jquery. Для того чтобы загрузить JQuery код по умолчанию в Yii нечто вроде следующего

Yii::app()->clientScript

Пожалуйста, проверьте эту строку, если вы загружаете JQuery здесь, и вы, возможно, загрузили JQuery в макете также. Лучший способ проверить это - использовать отладчик html и просмотреть источник страницы на той же странице, где вы получаете ошибку.