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)

laimas 27.01.2018 21:17

Цитата:

Сообщение от kravru
у меня oninput не работает при клике по кнопкам

Я постскриптум добавил по этому поводу, только спустя подумал, что не того вы просите.

Цитата:

Сообщение от kravru
тогда и для цены не нужен id='cena_IDтовара' ?

Что есть есть $key - id товара? Если да, то name='prod[{$key}]', это разумно. В этом случае сервер получит в массиве под ключом prod массив, ключами которого будут id товаров, а их значениями количество набранного. Для того чтобы серверу контролировать корзину, это и нужно, более ничего не требуется. id='kolvo' полная туфта, ибо к DOM элементу можно обратиться не только по его идентификатору. Но главное, это то, что в данной задаче индивидуального обращения к каждому полю, что и делается с помощью идентификатора, совсем не требуется, а значит выбросить это и забыть.
Нет надобности и в onChange='ChangeSum({$key})'. Во-первых - если требуется обработка ручного ввода (не кнопками и в плагине этого нет), то данный обработчик лучше определить для тега form, и если таким образом, то передавать в функцию не $key (в случае формы, это, конечно, глупо), а форму ChangeSum(this).

В функции нужно обойти циклом элементы формы f.elements (пусть функция принимает форму аргументом f), получая у каждого его (value), умножая его на цену товара (это удобно держать в атрибутах полей, чего у вас нет), суммируя полученное для получения общей суммы. Если для чего-то потребуется id товара в этом расчете (даже не представляю для чего это может потребоваться), то его несложно получить из имени поля (name) по шаблону регулярного выражения /\d+/, и получите цифры.


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