我有一个js文件和一个索引文件,它们位于同一个文件夹中。这是我的表格。我已经注册了脚本。
$this->registerJs($this->render('script.js'), \yii\web\VIEW::POS_READY);
<?php $form = ActiveForm::begin(); ?>
<div class="booth">
<video id="video" width="400" height="300"></video>
<a href="#" id="capture" class="button">Take Photo</a>
<canvas id="canvas" width="400" height="300"></canvas>
</div>
<div class="form-group">
<?= Html::button('Save',['class'=>'btn btn-primary','onclick'=>'saveimage();']) ?>
</div>
<?php ActiveForm::end(); ?>
这是js文件中的函数。
function saveimage()
{
var csrfToken = $('meta[name="csrf-token"]').attr("content");
console.log(123);
})*/
}
当我点击我的按钮时显示错误Uncaught Reference Error: saveimage is not defined
?无论如何它在那里调用函数?
我也试过了'onclick'=> 'js:saveimage()'
,但仍然无法正常工作。
答案 0 :(得分:1)
尝试:
$this->registerJs(
"function saveimage()
{
var csrfToken = $('meta[name="csrf-token"]').attr("content");
console.log(123);
}",
\yii\web\VIEW::POS_READY,
'my-button-handler'
);
或者,如果您想使用单独的js文件,可以使用以下语法:
$this->registerJsFile(
'@web/js/script.js',
['depends' => [\yii\web\JqueryAsset::className()]]
);
使用yii \ web \ View对象时,您可以动态注册 前端脚本。有两种专用方法:
1)内联脚本的registerJs()
2)用于外部脚本的registerJsFile()
有关详细信息,请参阅link。