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);

		})
  • Вопрос задан
  • 793 просмотра
Решения вопроса 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 запрос.
Ответ написан
Ваш ответ на вопрос

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

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