@SJerin

Как отправить сообщение при нажатии кнопки только один раз?

Нужно отправлять сообщения при нажатии на кнопку. При нескольких нажатиях отправляется несколько раз. Были попытки отменять обработчик, как кнопка нажата, и добавлять обратно, когда сообщение пришло, менять класс кнопки, очищать поле сразу после нажатия. Но в мобильных браузерах ничего из этого не срабатывает и сообщения как будто выстраиваются в очередь, а потом приходят все. Как можно сделать, чтобы сообщение отправлялось только один раз?
  • Вопрос задан
  • 487 просмотров
Пригласить эксперта
Ответы на вопрос 3
IonDen
@IonDen
JavaScript developer. IonDen.com
Примерно такой паттерн:
var sending = false;

$(".button").on("click", function () {
    if (sending) {
        return;
    }
	
    sending = true;
    
    $.ajax({
    	// send data
    	success: function (data) {
            sending = false;
        }
    })
});
Ответ написан
Комментировать
@SJerin Автор вопроса
Проблема решилась с помощью флагов и очистки поля сразу после нажатия, в мобильных браузерах заработало.
Ответ написан
Комментировать
Kleindberg
@Kleindberg
Full stack
Понравилась идея "скрывать кнопку". Как вариант, многие разработчики после нажатия кнопки submit делают ее disabled. В таком случае нажать несколько раз не получится. Должно срабатывать и на мобильных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы