我有一个add.ctp文件,我可以在其中添加多行,如果我将addNumber函数添加到app/webroot/js
,那么它不起作用,为什么?
我的观看文件(add.ctp
)
<table id="mytable">
<tr id="number0" style="display:none;">
<td><?php echo $this->Form->button(' - ',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 :(得分:0)
<强>解决方案强>
在<?php echo $this->Html->script('addNumber'); ?>
add.ctp
添加到</table>
文件中
答案 1 :(得分:0)
您是否在add.ctp中调用addNumber.js? 您可以在app \ View \ Layouts \ default.ctp中调用此js文件,然后再调用
echo $this->Html->script(addNumber.js);
或者你可以在add.ctp里面创建一个脚本标签来调用它:
$.getScript('/epedidos/app/webroot/js/addNumber.js');
顺便说一句,如果没有定义调用此函数的错误,请在firebug上检查控制台(按键盘上的F12键)。
答案 2 :(得分:0)
您必须使用标题部分或ctp文件末尾的Html对象的脚本方法,在工作订单中添加视图中使用的所有javascript文件。
例如:
我认为你之前没有添加过jquery和你的addnumber,所以在你的ctp文件的末尾:
<?php echo $this->Html->script(array('jquery','addNumber')); ?>
注意顺序,即jquery必须在addNumber之前,并且它们都必须在webroot/js/