Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   изменение количества товара по +/- (jquery.inputNumber.js) (https://javascript.ru/forum/dom-window/72418-izmenenie-kolichestva-tovara-po-jquery-inputnumber-js.html)

kravru 27.01.2018 19:25

изменение количества товара по +/- (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 - не работает.
Почему?
А при указании количества в самом поле - работает

laimas 27.01.2018 19:34

https://learn.javascript.ru/events-change

kravru 27.01.2018 19:40

Получается надо заменить onchange на oninput?
Попробовал, все равно не работает :(

kravru 27.01.2018 19:41

или надо отказываться от jquery.inputNumber.js
и делать кнопки + и - типа так:
<a class='minus'>-</a>
<input type="text" class="num" value="1">
<a class='plus'>+</a>

laimas 27.01.2018 19:47

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

kravru 27.01.2018 19:50

да, по измененному количеству товара в поле input type='text' изменить сумму этого товара (а потом и общую сумму корзины)

laimas 27.01.2018 20:02

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

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

В третьих - id='kolvo', это удалить у полей, значение идентификатора поля должно быть уникальным, то есть проку от этого нет.

kravru 27.01.2018 20:24

1. документацию почитаю.
oninput пробовал, не помогло
2. логично, все равно же общую сумму нужно считать
3. да, надо делать типа id='kolvo_IDтовара'
но как потом к нему обратиться?
вот мой вопрос на эту тему https://javascript.ru/forum/dom-wind...id-tovara.html

laimas 27.01.2018 20:42

1:

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


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

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

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

kravru 27.01.2018 20:52

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


Часовой пояс GMT +3, время: 08:43.