У меня есть группа тестов в моей системе. Возможно, что тест будет приостановлен. На странице индекса моего тестового контроллера я использую следующий код для отображения тестов.Cakephp создал javascript throws error onclick
<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>
Это создает список тестов и предоставляет некоторые функции действия для каждого из них с помощью postlink
из формы CakePHP помощника. Проблема, вызывающая проблемы, - кнопка паузы. Когда-то при нажатии на нее возникает следующая ошибка.
Uncaught TypeError: Object #<HTMLCollection> has no method 'submit'
Эта ошибка почти никогда не возникает при первом нажатии паузы. Пауза может быть переключена, поэтому эта ошибка обычно появляется после того, как пауза была переключена несколько раз. Я не уверен в JS, и поскольку JS для этого автоматически создается, я не уверен, как это исправить. При возникновении этой проблемы кнопка паузы ничего не сделает, и я даже не знаю, с чего начать ее отладку. Спасибо всем, кто помогает.
UPDATE: Это HTML код, который визуализируется в браузере с помощью postlink:
<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
не имеет метода отправки. Я не уверен, как это исправить.
Вы пытались нажать delete? – SaidbakR
«Этот метод создает элемент
@ sємsєм Я рассмотрел эту часть руководства. Я не мог заставить его работать. Я должен просмотреть, будет ли более крупная форма обертывать эту существующую. – usumoio