我无法在cakephp3中使用javascript代码。最初我想隐藏/显示div部分而不是单击选项。除了这个js函数之外,该项目工作正常。我在一个文件(webroot / js / myjs.js)中有js函数,我在布局中调用文件,如下所示。我单击一个选项按钮来调用此函数来测试它,我没有输出。我不知道还有什么我需要做的,因为我被卡住了。
http://book.cakephp.org/3.0/en/views/helpers/html.html#creating-inline-javascript-blocks
<?php
$options=array(0=>'Student',1=>'Tutor');
echo $this->Form->input('cancelledBy',
[ 'label'=>false, 'style'=>"margin:10px;", 'type' => 'radio', 'options' => $options,
'onclick'=>'hide()', 'value'=>0]);
?>
<div id="cancel" style="display: none;">Hello hidden content</div>
//myjs.js
<script type="text/javascript">
function hide()
{
alert('asd');
var e = document.getElementById("cancel");
if(e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
}
</script>
//layoutfile (which appears when i see the page source with the javascript function
<?php echo $this->Html->script(['myjs.js']); ?>
答案 0 :(得分:1)
在您的视图$this->Html->script('myjs', ['block' => 'scriptBottom']);
中使用此功能
并在<?= $this->fetch('scriptBottom') ?>
</body>
添加到您的布局中
修改强>
删除'type' => 'radio'
并更改onclick事件以进行更改
$options = array(0=>'Student',1=>'Tutor');
echo $this->Form->input('cancelledBy', [
'label' => false,
'style' => "margin:10px;",
'options' => $options,
'onchange' => 'hide()',
]);
答案 1 :(得分:0)
这有效
//在视图中
$('input[name="cancelledBy"]').change(function(){
alert('Here');
var e = document.getElementById("cancel");
if (e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
});
// js
https://www.googleapis.com/drive/v3/files?q=name%3D%27hello%27&access_token=...