选项按钮上的JavaScript不会在cakephp3中工作

时间:2016-12-28 23:08:16

标签: javascript jquery cakephp cakephp-3.0

我无法在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']); ?>

2 个答案:

答案 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=...