Перехват сообщений формы cake2 postLink ()с помощью jQuery

Кто-нибудь нашел способ перехватить стандартные формы Form ::postLink ()с помощью Jquery? Я хотел бы, чтобы форма работала без JS (, поэтому пост Ссылка ). Но с включенным JS я хочу перехватить сообщение и вызвать его через AJAX.

<?php echo $this->Form->postLink('Delete', array('action'=>'delete', $prospect['Prospect']['id']), array('class'=>'postLink', 'escape'=>false), __('Sure you want to delete # %s?', $prospect['Prospect']['id'])); ?>

генерирует:

<form action="/admin/prospects/delete/4f61ce95-2b6c-4009-9b89-07e852b0caef" name="post_4f648f773923b" id="post_4f648f773923b" style="display:none;" method="post">
    <input type="hidden" name="_method" value="POST"/>
</form>
<a href="#" class="postLink" onclick="if (confirm('Sure you want to delete # 4f61ce95-2b6c-4009-9b89-07e852b0caef?')) { document.post_4f648f773923b.submit(); } event.returnValue = false; return false;">
    Delete
</a>

Основная проблема в том, что здесь js помещается в строку. Поэтому всегда срабатывает, даже если я пытаюсь перехватить событие щелчка (или событие публикации -тоже пробовал ):

<script>
$(document).ready(function() {
    $('table.list a.postLink').click(function(e) {
        e.preventDefault();
      alert('Handler for.submit() called.');
      // TODO: do ajax request here and return false
      return false;
    });
});
</script>

. Таким образом, в конце концов форма всегда отправляется нормально и перенаправляет -либо игнорируя любой вызов ajax (перехват отправки формы )или публикации/перенаправления независимо от только что сделанного ajax-вызова (перехват события клика ).

Я хотел бы удалить эту запись через AJAX и -в случае успеха -просто удалить эту строку таблицы из DOM. Было бы здорово, если бы для этого не нужно было модифицировать все 300+ «кнопок удаления» в приложении.

Если ничего не получится, я, вероятно, все же смогу переопределить FormHelper (, расширить его и дать ему псевдоним ). Но я надеялся на менее инвазивное решение здесь.

5
задан mark 17 March 2012 в 13:25
поделиться