Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.01.2018, 18:25
Интересующийся
Отправить личное сообщение для kravru Посмотреть профиль Найти все сообщения от kravru
 
Регистрация: 29.03.2010
Сообщений: 17

изменение количества товара по +/- (jquery.inputNumber.js)
Пытался выкладывать на https://jsfiddle.net/a9fxgybq/7/ и https://jsfiddle.net/a9fxgybq/8/ но там не всё работает
Корзина: http://semena-tambov.ru/cart.php (пустая)
<input type='text' name='prod[{$key}]' id='kolvo' value='{$val}' class='num' onChange='ChangeSum({$key})'>

При нажатии на кнопки + и - количество меняется, но onChange - не работает.
Почему?
А при указании количества в самом поле - работает
Ответить с цитированием
  #2 (permalink)  
Старый 27.01.2018, 18:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

https://learn.javascript.ru/events-change
Ответить с цитированием
  #3 (permalink)  
Старый 27.01.2018, 18:40
Интересующийся
Отправить личное сообщение для kravru Посмотреть профиль Найти все сообщения от kravru
 
Регистрация: 29.03.2010
Сообщений: 17

Получается надо заменить onchange на oninput?
Попробовал, все равно не работает
Ответить с цитированием
  #4 (permalink)  
Старый 27.01.2018, 18:41
Интересующийся
Отправить личное сообщение для kravru Посмотреть профиль Найти все сообщения от kravru
 
Регистрация: 29.03.2010
Сообщений: 17

или надо отказываться от jquery.inputNumber.js
и делать кнопки + и - типа так:
<a class='minus'>-</a>
<input type="text" class="num" value="1">
<a class='plus'>+</a>
Ответить с цитированием
  #5 (permalink)  
Старый 27.01.2018, 18:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

kravru,
я не вникал чего вам надо, если подключаемый плагин вносит в выбранное поле необходимое. Зачем нужна эта функция, просчитать к примеру общую сумму набранных товаров или ...?

Последний раз редактировалось laimas, 27.01.2018 в 18:49.
Ответить с цитированием
  #6 (permalink)  
Старый 27.01.2018, 18:50
Интересующийся
Отправить личное сообщение для kravru Посмотреть профиль Найти все сообщения от kravru
 
Регистрация: 29.03.2010
Сообщений: 17

да, по измененному количеству товара в поле input type='text' изменить сумму этого товара (а потом и общую сумму корзины)
Ответить с цитированием
  #7 (permalink)  
Старый 27.01.2018, 19:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Во-первых - внимательно посмотреть (изучить) документацию на плагин, вполне возможно такой метод (обработка события изменения в поле) в нем уже есть, если нет, тогда да - oninput. Но учесть поддержку события браузерами.

Во-вторых - зачем же для расчета суммы набранных товаров передавать в функцию ID товара, $key это его ID? Функция данная должна обойти все поля циклом и произвести расчет.

В третьих - id='kolvo', это удалить у полей, значение идентификатора поля должно быть уникальным, то есть проку от этого нет.
Ответить с цитированием
  #8 (permalink)  
Старый 27.01.2018, 19:24
Интересующийся
Отправить личное сообщение для kravru Посмотреть профиль Найти все сообщения от kravru
 
Регистрация: 29.03.2010
Сообщений: 17

1. документацию почитаю.
oninput пробовал, не помогло
2. логично, все равно же общую сумму нужно считать
3. да, надо делать типа id='kolvo_IDтовара'
но как потом к нему обратиться?
вот мой вопрос на эту тему https://javascript.ru/forum/dom-wind...id-tovara.html
Ответить с цитированием
  #9 (permalink)  
Старый 27.01.2018, 19:42
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

1:

<input oninput="alert('Все работает')">


2: Логично что? Расчет суммы - да, передача id товара - никакой логики.

3: Ничего не надо делать, в данном случае id='kolvo_IDтовара' и прочее пустое и никчемное занятие.

PS. По поводу события - вам что надо? Если обработать событие ввода в поле кнопками, а это делается посредством JS, то оно и не будет возникать, это только в плагине можно отследить (есть способ и без этого сделать, но в данном случае это уже слишком будет). Но пользователь может и вручную изменять значение, если плагином это не запрещено, тогда oninput.

Последний раз редактировалось laimas, 27.01.2018 в 19:57.
Ответить с цитированием
  #10 (permalink)  
Старый 27.01.2018, 19:52
Интересующийся
Отправить личное сообщение для kravru Посмотреть профиль Найти все сообщения от kravru
 
Регистрация: 29.03.2010
Сообщений: 17

1. <input oninput="alert('Все работает')">
у меня oninput не работает при клике по кнопкам + и - (которые генерятся с помощью jquery.inputNumber.js)
там похоже совсем на другой объект/элемент/класс надо вешать запуск функции пересчета корзины
2. я имел ввиду логично то, что вы сказали.
3. тогда и для цены не нужен id='cena_IDтовара' ?
может еще подскажете как тогда перебрать все значения цен и количеств?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение числа(в span) при вводе большего количества товара Denis_Landar Элементы интерфейса 8 10.03.2018 12:50
Подсчитать сумму заказ исходя из цены и количества smart-create Events/DOM/Window 10 06.12.2016 21:32
Изменение css стилей в зависимости от количества элементов spaiker2009 Элементы интерфейса 1 30.09.2015 23:23
Изменение прорачности фона после n-го количества времени. SneQ AstC Общие вопросы Javascript 15 16.10.2014 19:38
Динамическое изменение цены при изменении количества товара MrNix21 Элементы интерфейса 9 08.12.2013 19:47