Задать вопрос
Flex99
@Flex99
Frontend Developer

Обработка события input при отправке ajax запроса?

У меня возникла проблема при отправке ajax. При изменении input, я делаю задержку и шлю value инпута в обработчик. Проблема в том, что ajax обращается в обработчик при каждом вводе, т.е. вместо одного запроса происходит столько, сколько было введено символов в input.

thisVar.doc.on('input', '#eventSearch', function(e) { // Вешаю на событие input, change не подходит
			var   input = $(this),
				searchRequest = false,
				reqDelay = 1500;

			if(searchRequest !== false) {
				clearInterval(searchRequest);
			}

			searchRequest = setTimeout(function() {
				eventsApp.ajaxSearchHandler(input); // это функция моего ajax
				searchRequest = false;
			}, reqDelay);

		})
  • Вопрос задан
  • 949 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Flex99
@Flex99 Автор вопроса
Frontend Developer
Вопрос снят. Невнимательно объявил переменные, они должны быть объявлены вне обработчика события.

var searchRequest = false,
			reqDelay = 1500;

		thisVar.doc.on('input', '#eventSearch', function(e) {
			var input = $(this);

			if(searchRequest !== false) {
				clearInterval(searchRequest);
			}

			searchRequest = setTimeout(function() {
				eventsApp.ajaxSearchHandler(input);
				searchRequest = false;
			}, reqDelay);

		});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
moslem
@moslem
Not found page
Может тогда просто поставить обработчик события на submit? Чтоб при клике на кнопку отправки шел ajax запрос.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 12:39
1000 руб./за проект
18 дек. 2024, в 12:37
10000 руб./за проект
18 дек. 2024, в 12:22
5000 руб./за проект