Триггерное событие после event.preventDefault - PullRequest
2 голосов
/ 26 августа 2011

Я ловлю клики на кнопке отправки формы. Я делаю event.preventDefault(), чтобы отключить действие браузера по умолчанию, чтобы я мог выполнять свои действия после нажатия кнопки. В этом случае я делаю AJAX-вызов на сервер. По ответу сервера я хочу выбрать, продолжить ли отправку формы или сделать что-то еще.

$inviteSubmitForm.find('input[name="accept"]').click(function(e){
    e.preventDefault();

    $.ajax({
        ...
        success  : function(data) {

            if (data.something) {
                ...
            } else {
                ...
            }

        }
    });
});

Проблема в том, что я не могу выполнить действие по умолчанию для нажатой кнопки, потому что логика в обратном вызове AJAX. Так что return true просто завершите функцию обратного вызова - я не могу использовать этот простой трюк. Также перемещение e.preventDefault() не разрешено, потому что форма отправляется немедленно.

Есть идеи?

1 Ответ

0 голосов
/ 26 августа 2011

триггер для отправки формы:

$inviteSubmitForm.find('input[name="accept"]').click(function(e){
    e.preventDefault();

    $.ajax({
        ...
        success  : function(data) {

            if (data.something) {
                // don't submit
            } else {
                $inviteSubmitForm.submit();
            }

        }
    });
});
...