Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.08.2011, 15:12
Новичок на форуме
Отправить личное сообщение для Ad1r Посмотреть профиль Найти все сообщения от Ad1r
 
Регистрация: 23.03.2011
Сообщений: 9

Событие keyup, отправка данных
Здравствуйте!

Проблема заключается в следующем, событие keyup отрабатывает при каждом отжатии кнопки при установленом фокусе на форму. И получается, что когда происходит отжатие кнопки, то у меня формируется запрос и отправляется ajax'ом, я сделал таймаут, но ничего хорошего из этого не вышло, запрос откладывается на указанное время а после отправляется ровно столько раз, сколько была нажата кнопка во время нахождения фокуса на форме.

Как в таком случае избежать ненужных ajax запросов?

$("input[name=myInput]").keyup(function(){
	  		    setTimeout(function(){ 
	  		    	$('#myForm').ajaxSubmit(options);
	  		    }, 2000 );			
		});
Ответить с цитированием
  #2 (permalink)  
Старый 11.08.2011, 15:20
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

вешать на событие blur (уход с объекта)
Ответить с цитированием
  #3 (permalink)  
Старый 11.08.2011, 17:26
Новичок на форуме
Отправить личное сообщение для Ad1r Посмотреть профиль Найти все сообщения от Ad1r
 
Регистрация: 23.03.2011
Сообщений: 9

Форма о которой идет речь является последней в списке всех форм, а так же кнопки "отправить" нет (что говорит о том, что пользователь оставит крусор в этой форме), поэтому у меня и возникла такая задача отследить момент и отправить форму, только на деле происходит отправок ровно столько сколько раз сработало событие keyup
Ответить с цитированием
  #4 (permalink)  
Старый 11.08.2011, 17:33
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

var timerHandle = null;

$("input[name=myInput]").keyup(function(){
     if ( timerHandle != null ) {
         clearTimeout( timerHandle );
     }
     timerHandle = setTimeout(function(){
         $('#myForm').ajaxSubmit(options); 
     }, 2000 );
});
Ответить с цитированием
  #5 (permalink)  
Старый 11.08.2011, 17:53
Новичок на форуме
Отправить личное сообщение для Ad1r Посмотреть профиль Найти все сообщения от Ad1r
 
Регистрация: 23.03.2011
Сообщений: 9

спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка данных методом POST mgukov AJAX и COMET 3 25.03.2011 15:29
JavaScript отправка данных методом POST FORUS Серверные языки и технологии 15 29.05.2010 21:11
Отправка данных в txt\xml Krappt AJAX и COMET 2 21.05.2010 07:58
Отправка данных методом POST с заменой HTTP_REFERRER pavluxa09 AJAX и COMET 1 16.11.2009 19:30
Отправка данных обработчику без перезагрузки dimjan4 AJAX и COMET 10 06.06.2009 21:53