jQuery(...).activeform不是Yii中的函数

wd2eg0qa  于 2022-11-09  发布在  jQuery
关注(0)|答案(4)|浏览(180)

我正在和Yii开发一个项目。
我需要在网站的许多页面上使用jquery ui。所以我在网站的布局中添加了jquery核心库和jquery ui库,以便在所有页面上都可以访问它们。
但它会在有表单(活动表单)的页面上造成问题。我在Firebug上看到了这个错误:

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

为甚么会这样呢?2我怎样才能解决呢?

  • 谢谢-谢谢
dsekswqp

dsekswqp1#

如果您在布局文件中手动包含了jQuery核心库,那么jQuery可能会被第二次加载,并覆盖原来的jQuery对象,而原来的jQuery对象已经附加了Yii插件。
您应该改用Yii::app()->clientScript->registerCoreScript('jquery.ui')

ttvkxqim

ttvkxqim2#

您可能在页面中加载了两次jquery,请检查layout/main.php中的代码,以及您注册jquery的位置。在yii中加载jquery的默认代码如下
Yii::app()->clientScript
如果您在此处加载jquery,并且您可能在布局中也加载了jquery,请检查此行。检查这一点的最佳方法是使用html调试器并查看出错页面的页面源代码。

ruarlubt

ruarlubt3#

在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'); ?>
brc7rcf0

brc7rcf04#

在js文件夹中创建一个名为yii.activeForm.js的文件,并复制https://codeclimate.com/github/yiisoft/yii2/framework/assets/yii.activeForm.js/source中的内容。
不要忘记在AppAsset.php中包含该文件。

相关问题