Время для прочтения: 1 мин. 1 сек.

jQuery сниппеты: блокировка многократного нажатия кнопки отправки формы

Формы предназначены для обмена данными между пользователем и сервером. Для отправки формы на сервер используется кнопка submit, того же эффекта можно добиться, нажав клавишу enter в пределах текущей формы. Очень часто пользователи, не дождавшись завершения обработки формы, повторно (многократно) нажимают кнопку отправки данных на сервер.

Чтобы избежать дублирования информации на принимающей стороне, проще всего при возникновении события submit на форме блокировать кнопку отправки.

Приведенный сниппет с легкостью решает поставленную задачу.

// Находим все формы в документе
$('form').submit(function(){
    // Блокируем кнопки при отправке формы
    $('input[type=submit]', $(this)).prop( 'disabled', true );
	e.preventDefault();
});

Живой пример

0

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

17 комментариев

сначала новые
по рейтингу сначала новые по хронологии

Вернуться назад программно или кнопкой в браузере?

Автор
Кобзарёв Михаил

Да, есть такая проблема, постараюсь найти причину

у меня 9...

Автор
Кобзарёв Михаил

Версию ИЕ подскажите мне для тестов

Автор
Кобзарёв Михаил

Так, а разве форма не должна отправляться по нажатию кнопки? Или она отправляется при повторном нажатии?

при нажатии на кнопку атрибут добавляется, но в мозиле и ИЕ не работает...

пишет disabled=disabled, но форма дальше отправляется.

Автор
Кобзарёв Михаил

А что конкретно не работает? Мой пример работает?

Да-да, разумеется, заменял. Не работает все равно.

Автор
Кобзарёв Михаил

У вас на сайте используется jQuery.noConflict();, поэтому $ везде замените на jQuery

Автор
Кобзарёв Михаил

Что именно не работает? Покажите ваш пример

Автор
Кобзарёв Михаил

Благодарю за наводку.