Ответ 1
Не разрешайте дальнейшие отправки, отключая кнопки отправки, вам не нужно ничего делать. Кроме того, скрыть форму и заменить ее чем-то, что вращается, чтобы пользователи были загипнотизированы, думая, что происходит что-то важное.
Я работаю над формой HTML, которая может занять несколько секунд. Я хотел бы отключить некоторые поля в форме после отправки.
Я могу сделать это в обработчике события формы submit
, но это срабатывает перед отправкой формы. Если я отключу элементы управления, их значения не будут включены в почтовые данные, отправленные на сервер.
Я попытался отменить событие отправки в моем обработчике, удалив обработчик событий submit
из формы, отправив форму самостоятельно через JavaScript, а затем отключив элементы управления, но проблема в том, что мне нужно знать, какой кнопку, на которую пользователь нажал, чтобы отправить форму. Эта информация находится в исходной форме submit, но, очевидно, она не находится в той, которую я запускаю вручную (так как ни одна кнопка не была нажата).
Я мог бы попытаться скопировать эту информацию в мою форму формы руководства, но есть ли способ запустить мой отключенный код после отправки формы?
Не разрешайте дальнейшие отправки, отключая кнопки отправки, вам не нужно ничего делать. Кроме того, скрыть форму и заменить ее чем-то, что вращается, чтобы пользователи были загипнотизированы, думая, что происходит что-то важное.
После отправки формы вы можете вызвать эту функцию:
function name() {
$("#target :input").attr("disabled", true);
return true;
}
Этот код отключит все поля from, исходящие из элемента с "target" в качестве его идентификатора.
Эта версия соответствует всем входным элементам:
function name() {
$("#target input").attr("disabled", true);
return true;
}
Вы должны включить библиотеку jQuery для работы этого кода.
Это почти то же самое, что и sp00m answer, за исключением того, что использует Javascripts native submit для предотвращения рекурсивного вызова.
$('#myForm').submit(function() {
this.submit();
disableFields(); // your own function
return false;
});
Вы можете использовать jQuery .post()
для отправки и .button().click()
, чтобы определить, какая кнопка была нажата
.post()
выполняет функцию, выполняемую после завершения отправки