jquery yiiactiveform is not a function

Содержание

  1. Primary tabs
  2. Forums:
  3. 1.Попытка , пытаемся добавить ( отрицательный результа т)
  4. 2.Попытка ( положительный результат )
  5. Ответы (3)

Primary tabs

Forums:

TypeError: jQuery(. ).yiiActiveForm is not a function

— если вы используете разные версии jquery или просто нестандартную,
то возможно у вас файл jquery подключился дважды.

Если вы переопределяете jquery в каком-то из ассетов вот так, но ваш ассет не вызывается до того как подключается стандартный jquery, вы можете принудительно зарегистрировать переопределяющий ассет перед «опасным» местом, например перед вызовом ActiveForm, которая в своей работе запивисит от стандартного jquery-ассета:

Ошибка, как её убрать?

Я использую Pjax и нужно сменить версию jQuery , для этого я отключаю версию по умолчанию:

Подключаю jQuery в layouts :

Пробовал подключать через AssetBundle и $this->registerJsFile(‘url/to/file.js’, [‘position’ => yiiwebView::POS_HEAD]);

Все работает отлично до тех пор, пока я не перехожу в view модуля. Но layout main — один, общий на всё приложение.

Если в View модуля еще подключить:

Но скрипты все будут работать. Но та ошибка все равно возникает.

Похоже что в Yii2 2.5 такого нету, а в новой есть.

1.Попытка , пытаемся добавить ( отрицательный результа т)

2.Попытка ( положительный результат )

Архириктура нашего приложения:

1.Наше приложение имеет один модуль, у которого нету собственного layout, а по дефолту все его view будут отображаться в базовом layout самого оприложения (у меня он main.php).

2.Мы используем JQueryPjax, не тот Pjax которые установлен в Yii2 по дуфолту.

3.Подключение JQuery, мы делаем в layout main.php, в самом низу

4.Если мы уберем css класс wrap , то опять будет появлятсья ошибка, когда мы будем переходит в View модуля. Если убирать этот класс не будем, то и ошибки не будет. Почему?

CSS класс ни при чем! Играет роль только div . То есть, если его не будет, будет ошибка. Почему?

13997 просмотра

3 ответа

6279 Репутация автора

Я разрабатываю проект с Yii.

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

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

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

Ответы (3)

12 плюса

6637 Репутация автора

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

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

0 плюса

902 Репутация автора

Возможно, вы загрузили jquery дважды на своей странице, пожалуйста, проверьте ваш код в layout / main.php и где бы вы ни зарегистрировали jquery. Загрузка кода jquery по умолчанию в yii выглядит примерно так:

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

Источник: computermaker.info

Техника и Гаджеты
Добавить комментарий