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

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

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

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

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

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

0

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

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

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

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

  • Кто?

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

  • Кто?

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

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

      • Кто?

        при нажатии на кнопку атрибут добавляется, но в мозиле и ИЕ не работает…
        пишет disabled=disabled, но форма дальше отправляется.

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

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

  • Mac

    Не работает.

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

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

      • Mac

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

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