jQuery(...).activeform не является функцией в Yii
Я разрабатываю проект с Yii.
Мне нужно использовать jquery UI на многих страницах сайта. Поэтому я добавляю базовую библиотеку jquery и библиотеку jquery ui в макет сайта, чтобы иметь доступ к ним на всех страницах.
Но это вызывает проблемы на страницах, которые имеют форму (активную форму). Я вижу эту ошибку на firebug:
jQuery(...).activeform is not a function
почему это так? Как я могу решить это?
Спасибо.
4 ответа
Если вы включите основные библиотеки jQuery вручную в файл макета, вполне возможно, что jQuery будет загружен во второй раз и переопределит исходный объект jQuery, к которому подключены плагины Yii.
Вы должны использовать Yii::app()->clientScript->registerCoreScript('jquery.ui')
вместо.
Добавьте этот код с вашим путем к js в head.php
<?php Yii::app()->clientScript->scriptMap = array(YII_DEBUG ? 'jquery.js' : 'jquery.min.js' => '/js/jquery-3.3.1.min.js'); ?>
<?php Yii::app()->getClientScript()->registerCoreScript('jquery'); ?>
Возможно, вы загрузили jquery дважды на своей странице, пожалуйста, проверьте ваш код в layout / main.php и где бы вы ни зарегистрировали jquery. Загрузка кода jquery по умолчанию в yii выглядит примерно так:
Yii::app()->clientScript
Пожалуйста, проверьте эту строку, если вы загружаете jquery здесь, и вы, возможно, также загрузили jquery в свой макет. Лучший способ проверить это - использовать отладчик html и просмотреть исходный код той же страницы, где вы получаете ошибку.
Создайте в папке js файл с именем yii.activeForm.js и скопируйте содержимое с https://codeclimate.com/github/yiisoft/yii2/framework/assets/yii.activeForm.js/source.
Не забудьте включить файл в AppAsset.php.