Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.02.2015, 23:39
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

не могу выловить изменение и отправить в AJAX
Привет всем. У меня есть интернет магазин с карзиной, дело в том что в карзине я не могу выловить изменение количство товара по <input />

Я полазил по интернету не мало почитал статей и нашел функцию input про которую пишется что она вылавливает любые изменения

подскажите как её использовать в подобном коде чтобы за место нажатие на enter, сразу можно было отправить запрос на выполнение определенной AJAX функции

сейчас работает по нажатию на enter
мне бы хотелось при изменение количества сразу выполнялась функция

$('.count-input').keypress(function(e){
    
 if(e.keyCode==13){
	   
 var iid = $(this).attr("iid");
 var incount = $("#input-id"+iid).val();        
 
 $.ajax({
  type: "POST",
  url: "sys/cart_input.php",
  data: "id="+iid+"&count="+incount,
  dataType: "html",
  cache: false,
  success: function(data) {
  $("#input-id"+iid).val(data);  
  loadcart();
    
  // переменная с ценной продукта
    var cart_price = $("#cena-tovar-id"+iid+" > span.text").attr("cena-tovar");
    var skidka = $("#skidka-id"+iid+" > span.text").attr("skidka");
    
  // Цену умножаем на колличество
result_cart_price = Number(cart_price) * Number(data);
result_stoimost = Number(skidka) * Number(data);
result_skidka = (Number(skidka) - Number(cart_price)) * Number(data);


    $("#cena-tovar-id"+iid+" > span.text").html(fun_group_price(result_cart_price));
    $("#stoimost-id"+iid+" > span.text").html(fun_group_price(result_stoimost)+" ₸");

  itog_price();

      }
}); 
  }
});
Ответить с цитированием
  #2 (permalink)  
Старый 25.02.2015, 00:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Это что за волшебная функция?

А что будет делать ваш сервер, если я начну нажимать на кнопку ну очень часто?
Ответить с цитированием
  #3 (permalink)  
Старый 25.02.2015, 00:09
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

Сообщение от laimas Посмотреть сообщение
Это что за волшебная функция?

А что будет делать ваш сервер, если я начну нажимать на кнопку ну очень часто?
<input type="text"> oninput: <span id="result"></span>
<script>
var input = document.body.children[0];
input.oninput = function() {
  document.getElementById('result').innerHTML = input.value;
}
</script>



Живой пример тут http://learn.javascript.ru/events-change#событие-input
Ответить с цитированием
  #4 (permalink)  
Старый 25.02.2015, 00:12
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

дело в том что мне и не интересна кнопка мне необходимо сравнение до и после и если оно не равно то выполнять функцию ту которую я дам
Ответить с цитированием
  #5 (permalink)  
Старый 25.02.2015, 00:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Живой пример - это не функция, это событие

необходимо сравнение до и после и если оно не равно...

И что за функцию, какова конечная задача? А так, нужно сперва по получению фокуса запомнить текущее состояние, а после изменения сравнивать, иначе сравнивать не с чем будет.
Ответить с цитированием
  #6 (permalink)  
Старый 25.02.2015, 00:43
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

ну в общем время не теряя посидел и по эксперементил

var input = document.getElementById("input-id9");
input.oninput = function(){
     
 document.getElementById('result').innerHTML = input.value;
 $.ajax({
  type: "POST",
  url: "sys/cart_input.php",
  data: "id=9&count="+input.value,
  dataType: "html",
  cache: false,
  success: function(data) {
  $("#input-id9").val(data);  
  loadtovarcart();
  itog_price();
      }
}); 
};


вот в таком виде оно у меня работает но это если при условии если у <input/> будет id=input-id9

но ведь у меня корзина и количество товара куча может быть. Под каждый же не писать подобное

как упростить и выловить номер, вот мой <input id="input-id9" iid="9" class="count-input" type="number" min="1" max="100" value="1">
Ответить с цитированием
  #7 (permalink)  
Старый 25.02.2015, 00:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Странно само по себе такое занятие для корзины на Ajax. Если перенести это действие на реальный магазин, то получается следующее - для того чтобы добавить в корзину или удалить из корзины какой либо товар, покупатель обязан бегать на кассу извещая об этом кассира.

А вы "живой пример читали" же, и как с IE < 9 тогда?

PS. Чтобы сразу не продолжать, например тут можете прочесть, то есть не все так шоколадно.

Последний раз редактировалось laimas, 25.02.2015 в 01:16.
Ответить с цитированием
  #8 (permalink)  
Старый 25.02.2015, 01:17
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

их единицы они меня не интерисуют
Ответить с цитированием
  #9 (permalink)  
Старый 25.02.2015, 01:18
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от biryukovm Посмотреть сообщение
их единицы они меня не интерисуют
То есть вы ориентируетесь только на новые браузеры?
Ответить с цитированием
  #10 (permalink)  
Старый 25.02.2015, 01:43
Кандидат Javascript-наук
Отправить личное сообщение для biryukovm Посмотреть профиль Найти все сообщения от biryukovm
 
Регистрация: 13.12.2013
Сообщений: 110

я на IE вообще не оринтируюсь, да и что я буду клиенту объяснять что такое IE и что там будет не работать. Да клиент с роду не открывал IE если только не отчетность в налоговую или интернет банкинг.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправить массив клиенту в ответ на ajax ascherbakov AJAX и COMET 14 03.12.2014 01:12
Не могу отправить ajax запрос rogodessa jQuery 6 27.09.2014 22:09
Не могу выпрыгнуть из ajax Rommik jQuery 10 14.08.2014 12:44
Книги по Ajax BaVa Учебные материалы 18 18.08.2013 14:05
Через ajax отправить много данных из таблицы на сервер Heger jQuery 3 29.08.2012 18:51