为了账号安全,请及时绑定邮箱和手机立即绑定

YII2.0 jQuery(…).activeform is not a function in 终极解决方案

标签:
PHP

今天终于把困扰我很久的报错解决掉了。
首先找到 vendor\yiisoft\yii2\web\JqueryAsset.php文件

<?php
namespace yii\web;
class JqueryAsset extends AssetBundle
{
    public $sourcePath = '@bower/jquery/dist';
  /*  public $js = [
        'jquery.js',
    ];*/
}

把这段注释掉,其实不注释也不要紧啦~只不过页面上会多加载一次jquery.js,下面才是重要的
最重要的来了
在同级目录下 也就是 vendor\yiisoft\yii2\web\YiiAsset.php

class YiiAsset extends AssetBundle
{
    public $sourcePath = '@yii/assets';
    public $js = [
        'yii.js',
    ];
    public $depends = [
       ** 'yii\web\JqueryAsset',**
    ];
}

可以看到这有个依赖 ,这个依赖的就是 刚刚上面的JqueryAsset的命名空间~现在只要把这个命名空间改掉就好了,只要改这一个地方就好了,因为yii.activeForm.js应该是依赖的yii.js的命名空间 ~ 虽然我全局也没搜到yii.activeForm.js在哪里出现过,反正不要管他就行了,接下来把它

   public $depends = [
        'app\assets\AppAsset',
    ];

改成这样就行了 依赖在 web同级目录下的 assets/AppAsset.php中

<?php
namespace app\assets;
use yii\web\AssetBundle;
class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/bootstrap.min.css',
        'css/iconfont.css',
        'css/bootsnav.css',
        'css/style.css',
    ];
    public $js = [
        'js/vendor/jquery-1.11.2.min.js',
        'js/vendor/bootstrap.min.js',
        'js/comm.js?v1',
      ];

    public static function addScript($view, $jsfile)
    {
        $view->registerJsFile($jsfile, [AppAsset::className(), 'depends' => 'app\assets\AppAsset']);
    }

    //定义按需加载css方法,注意加载顺序在最后
    public static function addCss($view, $cssfile)
    {

        $view->registerCssFile($cssfile, [AppAsset::className(), 'depends' => 'app\assets\AppAsset']);
    }
}
?>

这是我的appasset.php就是这样的了~现在打开页面就不会再看见讨厌的jQuery(…).activeform is not a function 了

点击查看更多内容
6人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
6
获赞与收藏
33

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消