2016-12-28 23 views
0

我無法獲取JavaScript代碼在cakephp3中工作。最初我想隱藏/顯示一個div部分點擊一個選項。除了這個js函數,該項目還可以正常工作。我有一個文件(webroot/js/myjs.js)中的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']); 之前</body>

編輯此<?= $this->fetch('scriptBottom') ?>添加到您的佈局

刪除'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'; 
});