[英]Yii2: how to call yiiActiveForm() manually?
在yii2
我使用yii2-assets-auto-compress
插件(包括jQuery lib)将所有js代码放入1个文件中。 async
加载此文件可加快页面加载速度。 但是,如果页面上有表单,则yiiActiveForm()
在</body>
的末尾添加yiiActiveForm()
。 因此,错误是jQuery is not defined
。
如何解决这个问题? 首先,我可以从script.js手动调用yiiActiveForm()
,但是如何关闭它自动在正文末尾加载呢? 通常,这并不方便,因为可能还有其他脚本会附加js代码。 也许有人知道如何使用yii2-assets-auto-compress
插件附加js代码?
<script src="/assets/js-compress/script.js?" async="async"></script>
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery('#w0').yiiActiveForm([],[]);
});
</script>
</body>
async
在HTML解析期间下载文件,并在完成下载后暂停HTML解析器以执行该文件。
Jquery
。 或将脚本加载到文档的<head>
中意味着使用脚本标记将其放置在布局文件中
<script type="text/javascript" src="/path/to/compressed.js" async="async"></script>
或使用
<?php $this->registerJsFile('/path/to/compressed.js',['aync'=>'aync'])?>
如果您正在使用AssetManager加载脚本文件
然后像这样加载
public $js = [
['js/compressed.js','async'=>'async','position' => yii\web\View::POS_HEAD],
];
另外,您应该配置资产管理器以不加载核心脚本jquery,以使其不会两次加载jquery。
'assetManager' => [
'bundles' => [
'yii\web\JqueryAsset' => [
'sourcePath' => null,
'js'=>[]
],
],
],
HERE
是一本好书。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.