2016-12-28 8 views
0

Я не могу получить код javascript для работы в cakephp3. Первоначально я хочу скрыть/показать раздел div, щелкнув опцию. Проект отлично работает от этой функции js. У меня есть функция js в файле (webroot/js/myjs.js), и я вызываю файл в макете, как показано ниже. Я нажимаю кнопку опции, чтобы вызвать эту функцию, чтобы проверить ее, и я не получаю никакого вывода. Я не могу понять, что еще мне нужно сделать, поскольку я застрял.javascript на кнопке опции не работает в cakephp3

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

Ваш код выглядит все good..is, что оповещения о показе? И консоль показывает некоторую ошибку? –

+0

Я попробовал предложение ответа, и это не сработало, и предупреждение не срабатывает. Я действительно не понимаю, что делать. У меня есть общедоступная копия. Http://crm5.aptutoring.com.au/lessons/cancelledlessontest – jagguy

ответ

1

использовать это на ваш взгляд $this->Html->script('myjs', ['block' => 'scriptBottom']); и добавить <?= $this->fetch('scriptBottom') ?> в макете, прежде чем </body>

EDIT

удалить 'type' => 'radio' и изменить OnClick событие для OnChange

$options = array(0=>'Student',1=>'Tutor'); 

echo $this->Form->input('cancelledBy', [ 
    'label' => false, 
    'style' => "margin:10px;", 
    'options' => $options, 
    'onchange' => 'hide()', 
]); 
+0

Это тоже не сработало. Мне, должно быть, не хватает чего-то http://crm5.aptutoring.com.au/lessons/cancelledlessontest – jagguy

+0

Очевидно, что onclick не работает на радио-бутах, проверьте мое редактирование. – SNA

0

Этом работал

// ввиду

echo $this->Form->input('cancelledBy', [ 
    'class' => 'cancelledByClass', 
    'label' => false, 
    'style' => "margin:10px;", 
    'type' => 'radio', 
    'options' => $options, 
    'value' => 0 
]); 

// JS

$('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'; 
});