2014-12-05 30 views
1

我有一個add.ctp文件,我可以添加多行,如果我把addNumber函數app/webroot/js,那麼它不工作,爲什麼?函數不工作,如果我把這個js文件夾

我的視圖文件(add.ctp

<table id="mytable"> 
     <tr id="number0" style="display:none;"> 
      <td><?php echo $this->Form->button('&nbsp;-&nbsp;',array('type'=>'button','title'=>'Click Here to remove this number')); ?></td> 
      <td><?php echo $this->Form->input('lisanumbrid', array ('name'=>'data[Kontaktid][lisanumbrid][0]')) ?></td> 
     </tr> 
     <tr id="trAdd"><td> <?php echo $this->Form->button('+',array('type'=>'button','title'=>'Click Here to add another number','onclick'=>'addNumber()')); ?> </td><td></td><td></td><td></td><td></td></tr> 
</table> 
<?php 
echo $this->Form->end('Lisa'); 
?> 

添加多行功能(addNumber.js)在這裏app/webroot/js

var lastRow=0; 
function addNumber() { 
$("#mytable tbody>tr#number0").clone(true).attr('id','lisanumbrid'+lastRow).removeAttr('style').insertBefore("#mytable tbody>tr#trAdd"); 
$("#lisanumbrid"+lastRow+" button").attr('onclick','removeNumber('+lastRow+')'); 
$("#lisanumbrid"+lastRow+" input:first").attr('numbrid','data[Lisanumbrid]['+lastRow+'][lisanumbrid]').attr({'id':'numbridlisaNumber'+lastRow,'name': 'data[Kontaktid][lisanumbrid]['+ lastRow +']'}); 
lastRow++; 
} 
    function removeNumber(x) { 
     $("#lisanumbrid"+x).remove(); 
    } 

jQuery的文件是像一個功能相同的文件夾,其在呼應C:\wamp\www\cakephp-2.5.6\app\View\Layouts\default.ctp

echo $this->Html->script('jquery-2.1.1.min.js'); 

如果我把這個addNumber函數放到add.ctp文件中並放入add.ctp
<?php echo $this->Html->script(array('jquery-2.1.1.min.js'));?>
然後它的工作很好,把我不想把這些放到add.ctp文件中。

感謝您的幫助!

+0

爲什麼不把所有的js文件inseide webroot/js文件夾? – 2014-12-05 10:34:57

+0

我有webroot/js裏面的所有js文件,你是什麼意思? – frantsium 2014-12-05 10:38:37

+0

感謝您添加您的解決方案。正如你發現的那樣,最好在答案中這樣做,而不是問題編輯。 – halfer 2014-12-16 22:22:16

回答

0

解決方案

新增<?php echo $this->Html->script('addNumber'); ?>add.ctp文件,之後</table>

0

你叫你的add.ctp addNumber.js? 你可以調用這個js在app \查看\佈局\ default.thtml中的文件,然後

echo $this->Html->script(addNumber.js); 

,或者可以創建內部add.ctp script標籤調用它:

$.getScript('/epedidos/app/webroot/js/addNumber.js'); 

順便說一句,如果未定義調用此函數的錯誤,請檢查螢幕上的控制檯(按下鍵盤上的F12)。

+0

我發現了一個解決方案。你沒有看到我的答案? ;) – frantsium 2014-12-05 12:42:52

+0

第一部分,我的回答只是一個副本:) – frantsium 2014-12-05 12:45:45

+0

嗯。我想你比我發表評論要快。 但是,這是它,只需在您的add.ctp – bcesars 2014-12-05 12:54:29

0

你必須在你的視圖中使用Html對象的腳本方法在你的標題部分或ctp文件的末尾添加工作順序中使用的所有javascript文件。

例如:

我會假設你有沒有在您的CTP文件的末尾添加jQuery和你的addnumber之前,所以:

<?php echo $this->Html->script(array('jquery','addNumber')); ?> 

方面的順序,即jQuery的必須是前addNumber和他們都必須在webroot/js/

+1

添加此行我已經建立了一個解決方案,看aswers;)但是,謝謝 – frantsium 2014-12-05 12:47:53

相關問題