Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2017, 18:11   #1
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию При ajax запросе, в input не вводится двухзнаное число

Здравствуйте!
В общем ситуация такая, есть поле input, есть таблица с полем count. Задача: изменить содержимое поле count по средством ajax, но при условии что введенное число больше нуля, а иначе возвратить ajax содержимое поле count, и вставить в этот же input.
Но, почему-то, я не могу ввести в input двухзначное число, нажимаю 1 а потом 0, чтоб получить число 10, но, 0 к 1 не добавляется, а если же не отпуская 1 нажать 0, тогда все работает, или если хочешь ввести 21, тоже нужно не отпуская 2 нажать 1, а иначе 1 не вводится. Почему так?

Код:
 $(".count-input").keyup(function(event) {
 var id_input_count = $(this).attr("id_input_count");
			 var id_div_tov = id_input_count;
			 var incount = $("#specified_count_ininput"+id_input_count).val();		     
			
		  	    $.ajax({			
	    		   url: "blocks/count-input.php",type: "POST",
			       data: "id="+id_input_count+"&count="+incount,
      	    	   dataType: "html", 
		           cache: false,
			       success: function(data){
			   ......
				    
			    }     
		     })  
    
  }
Женя32 вне форума Ответить с цитированием
Старый 17.10.2017, 02:46   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Вероятно, из-за того, что событие возникает на каждое отпускание клавиши?
Black Fregat вне форума Ответить с цитированием
Старый 17.10.2017, 12:36   #3
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Вероятно, из-за того, что событие возникает на каждое отпускание клавиши?
Да, событие keyup.
И что, так работать не будет?
Женя32 вне форума Ответить с цитированием
Старый 17.10.2017, 17:17   #4
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

А как она должна определить, последует за первой цифрой вторая или нет?

Работа с данными в input по клавиатурным событиям не имеет красивого решения - как определить, закончил пользователь ввод или ещё ищет нужную клавишу?
Я встречал схемы, где на событие вешался небольшой таймер, который заново перезапускался каждый раз. и только если событий не было какое-то время, тогда вызывалась обработка.
Black Fregat вне форума Ответить с цитированием
Старый 17.10.2017, 17:56   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Работа с данными в input по клавиатурным событиям не имеет красивого решения
согласен.


Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Я встречал схемы, где на событие вешался небольшой таймер, который заново перезапускался каждый раз. и только если событий не было какое-то время, тогда вызывалась обработка.
красивый костыль!

Женя, а чем Вас не устраивает событие изменения содержимого (change) ?

например,
Код:
$( ".count-input" ).change(function() {
  alert( "Handler for .change() called." );
});
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.10.2017, 18:03   #6
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
А как она должна определить, последует за первой цифрой вторая или нет?

Работа с данными в input по клавиатурным событиям не имеет красивого решения - как определить, закончил пользователь ввод или ещё ищет нужную клавишу?
Я встречал схемы, где на событие вешался небольшой таймер, который заново перезапускался каждый раз. и только если событий не было какое-то время, тогда вызывалась обработка.
На dns-shop.ru/, наверно, так и сделано. Там тоже вводишь нужное количество товара, и, примерно, через 2 секунды после последнего нажатия клавиши происходит реакция.

Сейчас попробую))
Женя32 вне форума Ответить с цитированием
Старый 17.10.2017, 18:46   #7
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию

Попробуйте использовать событие input
Код:
$('.count-input').on('input',function(){
...
});
Хорошо не там, где нас нет, а там, где нас еще небыло!!!
Рустам вне форума Ответить с цитированием
Старый 17.10.2017, 19:30   #8
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Цитата:
Сообщение от Рустам Посмотреть сообщение
Попробуйте использовать событие input
Код:
$('.count-input').on('input',function(){
...
});
Просто супер! То, что надо! Спасибо большое!
Женя32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не срабатывает callback в AJAX запросе Cannibal JavaScript, Ajax 3 09.05.2017 20:18
DBEdit не вводится число с точкой Женя32 БД в Delphi 5 21.10.2013 19:46
ользователем вводится некоторое натуральное число N , вычислить mimit Общие вопросы Delphi 1 19.10.2012 00:34
слетает кодировка при AJAX-запросе Seran4ek PHP 3 16.10.2011 22:39