Проблема со скриптом добавлением товара кнопками плюс минус в карточке

Автор Karabasov, 08 мая 2017, 23:05:33

« назад - далее »

Karabasov

Всем привет!
Столкнулся с такой проблемой, нужно как-то доработать скрипт, добавляющий в карточку товара кнопки плюс и минус, для изменения количества единиц товара, добавляемого в корзину. Сам по себе он работает нормально, при нажатии плюса или минуса, добавляется или убирается одна единица в поле INPUT, но стоит только воспользоваться фильтром, у товаров работа этих кнопок сбивается и начинает добавлять не 1 единицу, а сразу несколько, и чем больше пользоваться фильтром, тем большее количество единиц товара прибавляется при нажатии.
Собственно, нужно сделать, чтоб каждый при выборе пункта фильтра значение сбрасывалось...собственно скрипт клавиш плюс и минус ниже:

В Ajax-cart.js ввожу сам скрипт

// The button to increment the product value
$(document).on('click', '.product_quantity_incr', function(e){
    e.preventDefault();
    fieldName = $(this).data('field-qty');
    var currentVal = parseInt($('input[name='+fieldName+']').val());
quantityAvailableT = 100000000;
    if (!isNaN(currentVal) && currentVal < quantityAvailableT)
        $('input[name='+fieldName+']').val(currentVal + 1).trigger('keyup');
    else
        $('input[name='+fieldName+']').val(quantityAvailableT);
});
// The button to decrement the product value
$(document).on('click', '.product_quantity_decr', function(e){
    e.preventDefault();
    fieldName = $(this).data('field-qty');
    var currentVal = parseInt($('input[name='+fieldName+']').val());
    if (!isNaN(currentVal) && currentVal > 1)
        $('input[name='+fieldName+']').val(currentVal - 1).trigger('keyup');
    else
        $('input[name='+fieldName+']').val(1);
});


в product-list.tpl сам код:

<input type="number" min="1" name="qty_{$product.id_product|intval}" id="quantity_to_cart_{$product.id_product|intval}" class="text" value="1" />
<a href="#" data-field-qty="qty_{$product.id_product|intval}" class="btn btn-default button-minus product_quantity_decr">
<span><i class="icon-minus"></i></span>
</a>
<a href="#" data-field-qty="qty_{$product.id_product|intval}" class="btn btn-default button-plus product_quantity_incr">
<span><i class="icon-plus"></i></span>
</a>


Подскажите, как подправить, может проверку добавить в скрипт ? Не пойму в чем проблема, вроде должно одну единицу всегда прибавлять, почему при использовании стандартного фильтра сбивается этот порядок ?

Спасибо

Mr.Sen

Функцию нужно в файл product.js добавить, если для карточки. В product.tpl разметку
<a href="#" data-field-qty="qty" class="button-minus product_quantity_down"><i class="icon-minus">-</i></a>
<input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product->minimal_quantity > 1}{$product->minimal_quantity}{else}1{/if}{/if}" />
<a href="#" data-field-qty="qty" class="button-plus product_quantity_up"><i class="icon-plus">+</i></a>

Karabasov

Дак мне в каталоге нужны кнопки, а не карточке продукта, оэтому я в product-list.tpl добавлял, или нужно и в product.tpl продублировать ?