Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как ограничить количество нажатий на кнопку до 1 раза (https://javascript.ru/forum/misc/78101-kak-ogranichit-kolichestvo-nazhatijj-na-knopku-do-1-raza.html)

AnGera 26.07.2019 16:39

Как ограничить количество нажатий на кнопку до 1 раза
 
Доброго времени суток! Есть одна задача, прошу помощи с решением. При нажатии на кнопку по отправке запроса на сервер выходит alert, который говорит, что сообщение отправлено ну и т.д.. В скрипте установлено время обработки запроса, но он не всегда помогает, особенно если сервер долго грузиться. Т.е. в этот момент пользователь может 30 раз нажать на кнопку и запрос обработается 30 раз и alert тоже выйдет 30 раз. Так вот вопрос: как прописать код, чтобы запрос был только один. Пробовал разное кто что советует, но ничего не помогло.
Вот сам код:
$(document).ready(function() {

	$(".button, .reserve").magnificPopup();

	$("#phone").mask("+7(799)999-99-99");

	$(".count_element").on("click", (function() {
		ga("send", "event", "goal", "goal");
		yaCounterXXXXXXXX.reachGoal("goal");

	}));

        $("#forma").submit(function() {

		$.ajax({
			type: "POST",
			url: "mail.php",
			data: $(this).serialize()
		}).done(function() {
			$(this).find("input").val("");
			alert("Спасибо! Ваша заявка принята! Скоро мы с вами свяжемся.");
			setTimeout(function() {
				$.magnificPopup.close();
			}, 5);
			$("#forma").trigger("reset");
			
		});
		return false;
	});


});


Заранее благодарю за помощь!!!

AnGera 26.07.2019 18:29

так это на джаваскрипте. А как правильно написать, чтобы сделать неактивной кнопку?

BUBU 27.07.2019 23:55

У вас там лишняя скобка у функции...
$(".count_element").on("click", function() {
  $(this).prop('disabled', true); // prop() - от англ. property, свойство
  ga("send", "event", "goal", "goal");
  yaCounterXXXXXXXX.reachGoal("goal");
});

А потом, когда придет ответ от сервера, в конце функции-ответа дописать
$(".count_element").prop('disabled', false);

P.s.

Цитата:

Сообщение от Русский (Сообщение 510753)
В жидоскрипте нету встроенной функции "$".

jQuery-то...

AntonMs 28.07.2019 16:11

Кнопка.disabled = false; //Не активная кнопка
Кнопка.disabled = true; //Активная кнопка

//Или через свойство CSS:

Кнопка.style.pointerEvents = 'none';//Не активная кнопка
Кнопка.style.pointerEvents = 'auto';//Активная кнопка


Часовой пояс GMT +3, время: 11:39.