您的位置:首页 > Web前端 > JQuery

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

2018-02-05 22:12 453 查看
今天终于把困扰我很久的报错解决掉了。

首先找到 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 了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐