8

我正在用 Yii 开发一个项目。

我需要在网站的许多页面上使用 jquery ui。因此,我在站点布局中添加了 jquery 核心库和 jquery ui 库,以便在所有页面上都可以访问它们。

但这会导致具有表单(活动表单)的页面出现问题。我在萤火虫上看到了这个错误:

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

为什么会这样?我该如何解决?

谢谢你。

4

4 回答 4

14

如果您在布局文件中手动包含 jQuery 核心库,则 jQuery 可能会再次加载并覆盖附加了 Yii 插件的原始 jQuery 对象。

你应该Yii::app()->clientScript->registerCoreScript('jquery.ui')改用。

于 2013-05-30T10:24:23.087 回答
0

您可能在页面中加载了两次 jquery,请检查您在 layout/main.php 中的代码以及您在哪里注册了 jquery。在 yii 中加载 jquery 默认代码如下

Yii::app()->clientScript

请检查这一行,如果你在这里加载 jquery 并且你可能已经在你的布局中加载了 jquery。检查这一点的最佳方法是使用 html 调试器并查看出现错误的同一页面的页面源代码。

于 2016-12-15T07:54:31.310 回答
0

将此代码与您的路径添加到 head.php 中的 js

<?php YII_DEBUG === true ? Yii::app()->clientScript->scriptMap = array('jquery.js'=>'/js/jquery-3.3.1.js') : Yii::app()->clientScript->scriptMap = array('jquery.min.js'=>'/js/jquery-3.3.1.min.js') ?>
<?php Yii::app()->getClientScript()->registerCoreScript('jquery'); ?>
于 2018-07-18T09:53:14.577 回答
0

在 js 文件夹中创建一个名为 yii.activeForm.js 的文件,然后从https://codeclimate.com/github/yiisoft/yii2/framework/assets/yii.activeForm.js/source复制内容。

不要忘记在 AppAsset.php 中包含该文件。

于 2021-11-23T06:30:13.127 回答