Как правильно добавить числовое значение из input в data-qty
Всем привет!
Суть - есть инпут к которому прикручены кнопки плюс один и минус один. Это в карточке товара такое. Количество из инпута я подставляю data-qty атрибут кнопки добавления в корзину. Проблема - если я только зашел на страницу и ставлю например количество в 5, то добавляется количество 5 в корзину товаров. Дальше без перезагруки страницы всегда добавляется 5, какое бы количество я не выставлял в инпуте. Код Инпут <div id="counter-add-to-cart" class="counter" data-min-qty="1" data-max-qty="10000" data-step-qty="1" style="margin: 16px 0 0 0;"><div class="btn-qty p-decrementer">-</div><input class="p-number-input" type="number" data-min-qty="1" data-max-qty="10000" data-step-qty="1"><div class="btn-qty p-incrementer">+</div></div> Кнопка <button id="add-product-to-cart" class="button-add-cart" data-id="P288683" data-artcode="150N3000" data-title="Вентиль ручной HВ 3/4" никелированный с разъёмным соединением" data-price="471.99" data-qty="1" data-unit="шт" data-img="/images/imgshop/b3q7u/Uni-Fitt-150N3000.jpg" data-pcategory="Вентили и клапаны для радиаторов"><i class="fa fa-shopping-cart" aria-hidden="true"></i> Добавить в корзину</button> JS изменение инпута /* incrementer functionality */ $("#counter-add-to-cart").on("click", ".p-incrementer", function() { // incrementerEl$.click(function () { var parentEl = $(this).parent(); inputValue = parentEl.find('.p-number-input').val(); if(maxAttributeValue){ if(maxAttributeValue==inputValue){ return; } } if(stepAttributeValue){ inputValue = parentEl.find('.p-number-input').val(); parentEl.find('.p-number-input').val((+inputValue)+(+stepAttributeValue)).trigger("input"); return; } inputValue = parentEl.find('.p-number-input').val(); parentEl.find('.p-number-input').val(++inputValue).trigger("input"); }); /* decrementer functionality */ $("#counter-add-to-cart").on("click", ".p-decrementer", function() { // decrementerEl$.click(function () { var parentEl = $(this).parent(); inputValue = parentEl.find('.p-number-input').val(); if(minAttributeValue){ if(minAttributeValue==inputValue){ return; } } if(stepAttributeValue){ inputValue = parentEl.find('.p-number-input').val(); parentEl.find('.p-number-input').val((+inputValue)-(+stepAttributeValue)).trigger("input"); return; } inputValue = parentEl.find('.p-number-input').val(); parentEl.find('.p-number-input').val(--inputValue).trigger("input"); }) JS обработчика корзины addToCart: function(e) { e.preventDefault(); itemData = $(this).data(); if(typeof itemData.id === 'undefined') { console.log('Отсутствует ID товара'); return false; } //_paq.push(['addEcommerceItem', String(itemData.id), itemData.title, itemData.pcategory, itemData.price, 1]); // _paq.push(['trackEcommerceCartUpdate', itemData.price]); // console.log(itemData); cartData = actions.getStorage() || {}; if (cartData.hasOwnProperty(itemData.id)) { cartData[itemData.id].count = +cartData[itemData.id].count + +itemData.qty; } else { itemData.count = itemData.qty; cartData[itemData.id] = itemData; } actions.setStorage(cartData); actions.changeTotalCnt(itemData.qty); label.show(); if(opts.openByAdding) { $('a.product-options').modal('hide'); actions.openCart(); } return false; }, JS изменения data-qty у кнопки <script> $(document).ready(function() { $("#counter-add-to-cart").on("input", ".p-number-input", function() { var qtypinput = $(this).val(); $("#add-product-to-cart").attr("data-qty", qtypinput); }); $("#counter-add-to-cart").htmlNumberSpinner(); }); </script> |
Часовой пояс GMT +3, время: 10:31. |