@djienbaev97

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

Добрый день! Проект у меня на yii2 интернет магазин. У меня есть форма которая пользователь заполняет данные и отправляет, и если нажать кнопку быстро несколько раз, то в базу попадаются несколько одинаковых данных(копии). Моя кнопка через onclick отправляет в контроллер и там же сохраняю.

Как сделать чтобы кнопка не нажималась несколько раз? Или как решаете такие проблемы? Я раньше не сталкивался, помогите
  • Вопрос задан
  • 622 просмотра
Пригласить эксперта
Ответы на вопрос 5
@zkrvndm
Софт для автоматизации
Очевидно, что сразу после нажатия кнопки вам нужно заблокировать или его или обработчик и ждать пока не придет ответ от сервера, только после этого разблокируете все обратно.
Ответ написан
Комментировать
anton_reut
@anton_reut
Начинающий веб-разработчик
Например скрывать кнопку после нажатия через изменение CSS после клика. А вообще после отправки формы хорошо бы делать редирект куда то или убирать форму вообще и показывать сообщение что все хорошо отправилось.
Ответ написан
@vawylon
Я бы отчищал поля ввода либо блокировал кнопку. Что то вроде ожидания. Либо блокировал всё окно типо "Отправка" и анимация загрузки
Ответ написан
Комментировать
@Deemc
веб-программист
Я бы сделал флаг и по нему проверку, при нажатии перевод флага в false например. Если флаг false то отменяем обработку события. А там уже с этим флагом работать, перевод в true к примеру, если успешный ответ от сервера
Ответ написан
Комментировать
Перед самой отправкой кнопке добавляем атрибут disabled. После получения ответа от сервера, снимаем disabled.

На jquery это примерно так:
$('form').submit(function(){
	var button = $(this).find('button')

	button.prop('disabled', true)

	$.ajax({
		url: 'script.php',
		success: function(response){
			button.prop('disabled', false)
		}
	}
})
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект