jquery-logo
Время для прочтения: 0 мин. 18 сек.

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 комментариев

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

А если отправляем данные $.ajax(), тогда для этих же целей отключаем асинхрон.

А то на одном моём сайте админы (админши) нафигачили дублей...

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

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

Не работает.

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

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

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

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

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

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

Кнопка-то блокируется?

В мозиле и ИЕ не работает(( disabled добавляется, но не орабатывается

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

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

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

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

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

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

отправляется при повторном

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

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

у меня 9...

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

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

Александр Смирнов

Если форма отправляется POST на другую страницу и потом нужно вернуться НАЗАД к форме, то кнопка так и остаётся заблоченной!

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