0

嗨,我每次单击按钮时都会向表格添加一个标签和一个文本字段,但我也试图为每个标签赋予一个递增的值,但我不断收到意外的标识符错误。代码如下:

var counter = 2;

$('.addButton').click(function()
{
    $('#existingRow').after($('<tr><td><?php $cou = 2; echo $this->Form->label('Option' + $cou + ':');  $cou++ ?></td><td><?php echo $this->Form->input('name', array('label' => '', 'style' => 'height: 10px; width: 150px;')); ?></td></tr>'));
    counter++;
});

任何帮助是极大的赞赏。

4

3 回答 3

1

您得到的错误是因为您在 $() 选择器中使用这些行作为标识符。即$(' <tr><td><?php echo $this->Form->label('Option '+ counter + ':'); ?></td><td><?php echo $this->Form->input('name', array('label' => '', 'style' => 'height: 10px; width: 150px;')); ?></td></tr>')。灰色的代码作为标识符。

我的建议是使用 document.createElement 创建表格行的元素。这是完整的代码。

在 html 文件中你应该有一个表

<table id="my-table"></table>

在你的 javascript 文件中

var counter = 2;
$('.addButton').click(function()
{
    tr = document.createElement('tr');
    tr.innerHTML = "<td><?php echo $this->Form->label('Option '+ counter + ':'); ?></td><td><?php echo $this->Form->input('name', array('label' => '', 'style' => 'height: 10px; width: 150px;')); ?></td>";
    $('#my-table').append(tr);
    counter++;
});

它肯定会成功的。

于 2012-09-05T14:08:14.573 回答
1

您不能在 PHP 代码块中使用 JS 变量计数器。尝试:

var counter = 2;

$('.addButton').click(function()
{
   $('#existingRow').append('<tr><td>labelname' +  counter + ':'</td><td><?php echo $this->Form->input('name', array('label' => '', 'style' => 'height: 10px; width: 150px;')); ?></td></tr>');
   counter++;
});

如果它有效,那么您可以在此处插入使用生成的任何内容,而不是 labelname

 echo $this->Form->label('Option 2:');

然后用JS中的计数器更改2

于 2012-09-05T14:13:56.187 回答
0

这是任何人的答案:

    var counter = 2;

$('.addButton').click(function()
{
    $('#existingRow').before($('<tr><td><label for="VariableOption">Option' + counter + ':</label></td><td><?php echo $this->Form->input('name', array('label' => '', 'style' => 'height: 10px; width: 150px;')); ?></td></tr>'));
    counter++;
});

感谢@grzegorz_motyl

于 2012-09-05T14:37:57.933 回答