Подтвердить что ты не робот

Как я могу запустить JavaScript * после * события отправки формы?

Я работаю над формой HTML, которая может занять несколько секунд. Я хотел бы отключить некоторые поля в форме после отправки.

Я могу сделать это в обработчике события формы submit, но это срабатывает перед отправкой формы. Если я отключу элементы управления, их значения не будут включены в почтовые данные, отправленные на сервер.

Я попытался отменить событие отправки в моем обработчике, удалив обработчик событий submit из формы, отправив форму самостоятельно через JavaScript, а затем отключив элементы управления, но проблема в том, что мне нужно знать, какой кнопку, на которую пользователь нажал, чтобы отправить форму. Эта информация находится в исходной форме submit, но, очевидно, она не находится в той, которую я запускаю вручную (так как ни одна кнопка не была нажата).

Я мог бы попытаться скопировать эту информацию в мою форму формы руководства, но есть ли способ запустить мой отключенный код после отправки формы?

4b9b3361

Ответ 1

Не разрешайте дальнейшие отправки, отключая кнопки отправки, вам не нужно ничего делать. Кроме того, скрыть форму и заменить ее чем-то, что вращается, чтобы пользователи были загипнотизированы, думая, что происходит что-то важное.

Ответ 2

После отправки формы вы можете вызвать эту функцию:

function name() {
    $("#target :input").attr("disabled", true);
    return true;
}

Этот код отключит все поля from, исходящие из элемента с "target" в качестве его идентификатора.

Эта версия соответствует всем входным элементам:

function name() {
    $("#target input").attr("disabled", true);
    return true;
}

Вы должны включить библиотеку jQuery для работы этого кода.

Ответ 3

Это почти то же самое, что и sp00m answer, за исключением того, что использует Javascripts native submit для предотвращения рекурсивного вызова.

$('#myForm').submit(function() {
    this.submit();
    disableFields(); // your own function
    return false;
});

Ответ 4

Вы можете использовать jQuery .post() для отправки и .button().click(), чтобы определить, какая кнопка была нажата

.post() выполняет функцию, выполняемую после завершения отправки