我的系统中有一组测试。暂停测试是可能的。在我的测试控制器的索引页面上,我使用以下代码来显示测试。
<table>
<tr><th>ID</th><th>Name</th><th>Updated</th><th>Actions</th></tr>
<?php foreach ($tests as $test): ?>
<tr>
<td>
<?php echo $test['Test']['id']; ?>
</td>
<td class="actions">
<?php
$status = ($test['Test']['is_paused'] == 1) ? 'Un-pause' : 'Pause';
echo $this->Form->postLink($status, array('controller'=>'tests', 'action' => 'pause', $test['Test']['id'], 'admin' => 1), array('confirm'=>'Are you sure?') );
?>
<?php
echo $this->Html->link('Edit', array('controller'=>'tests', 'action' => 'edit', 'admin'=>1, $test['Test']['id']));
?>
<?php
echo $this->Form->postLink('Delete', array('controller'=>'tests', 'action' => 'delete', $test['Test']['id'], 'admin'=>1), array('confirm'=>'Are you sure?') );
?>
</td>
</tr>
<?php endforeach; ?>
</table>
这将生成一个测试列表,并使用cakephp表单助手中的postlink
为每个测试提供一些操作函数。导致问题的是暂停按钮。有时单击它会引发以下错误。
Uncaught TypeError: Object #<HTMLCollection> has no method 'submit'
在第一次单击暂停时几乎不会发生此错误。可以切换暂停,因此在暂停切换几次后,此错误通常会弹出。我不是超级我的JS,因为这是自动构建的JS,我不知道如何解决这个问题。发生此问题时,暂停按钮将不执行任何操作,我甚至不确定从何处开始调试此问题。感谢任何帮助过的人。
更新:这是postlink在浏览器中呈现的html代码:
<form action="/admin/tests/pause/5" name="post_521370eb05d3f" id="post_521370eb05d3f" style="display:none;" method="post">
<input type="hidden" name="_method" value="POST">
</form>
<a href="#" onclick="if (confirm('Are you sure?')) { document.post_521370eb05d3f.submit(); } event.returnValue = false; return false;">Un-pause</a>
看起来代码document.post_521370eb05d3f.submit();
是问题,如果我不得不猜测,我认为由于某种原因document.post_521370eb05d3f
没有提交方法。我不知道如何解决这个问题。
答案 0 :(得分:1)
$this->Html->link(__('Some Text to Click'), array(
'admin' => true,
'action' => 'delete',
$delete_id,
), null, 'Are you sure?'));