Добавим плюс и минус для изменения количества товаров в корзине.

Изменения делаем в файле:

components/com_virtuemart/cart/<span style="line-height: 1.5em;">default_pricelist.php</span>

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

Для этого в тэг input добавим параметр readonly

Также, добавим для тэга количества атрибут id, чтобы можно было обращаться к нему с помощью javascript функции document.getElementById()

id="quantity<?php echo $pkey; ?>"

Теперь тэг количества товаров выглядит так:

<input type="text" readonly
onblur="Virtuemart.checkQuantity(this,<?php echo $step?>,'<?php echo vmText::_ ('COM_VIRTUEMART_WRONG_AMOUNT_ADDED',true)?>');"
onclick="Virtuemart.checkQuantity(this,<?php echo $step?>,'<?php echo vmText::_ ('COM_VIRTUEMART_WRONG_AMOUNT_ADDED',true)?>');"
onchange="Virtuemart.checkQuantity(this,<?php echo $step?>,'<?php echo vmText::_ ('COM_VIRTUEMART_WRONG_AMOUNT_ADDED',true)?>');"
onsubmit="Virtuemart.checkQuantity(this,<?php echo $step?>,'<?php echo vmText::_ ('COM_VIRTUEMART_WRONG_AMOUNT_ADDED',true)?>');"
title="<?php echo vmText::_('COM_VIRTUEMART_CART_UPDATE') ?>" class="quantity-input js-recalculate" size="5" maxlength="6" id="quantity<?php echo $pkey; ?>" name="quantity[<?php echo $pkey; ?>]" value="<?php echo $prow->quantity ?>" />

После тэга количества добавим такой код:

<span class="quantity-controls"><input type="button" class="quantity-controls quantity-plus" onClick="javascript:document.getElementById('quantity<?php echo $pkey; ?>').value = (parseFloat(document.getElementById('quantity<?php echo $pkey; ?>').value) + parseFloat(<?php echo $step?>)).toFixed(3);"/>
<input type="button" class="quantity-controls quantity-minus" onClick="javascript:document.getElementById('quantity<?php echo $pkey; ?>').value = (parseFloat(document.getElementById('quantity<?php echo $pkey; ?>').value) - parseFloat(<?php echo $step?>)).toFixed(3);"/></span>

 

Комментарии   

#2 Alex31 20.11.2016 14:27
Народ! Если кто найдет решение - черканите пожалуйста на мыло !
#1 parallel 18.08.2016 10:54
Код явно не работает как надо
Во первых при нажатии на плюс или минус он добавляет ноль после запятой и после нажатия на кнопку обновить к цене прибавляет ещё 000 и вместо одного получается 1000.
Кнопка обновить не нужна должно по идее считаться всё автоматом.
После того как .toFixed(3) меняешь на .toFixed(0)
вроде прибавляет правильно но при нажатии на минус снова добавляет 0 после запятой т.е было 2 нажали на минус получили 1.0 ещё раз на минус 0.0 ещё раз и - 1.0 жмём пару раз на + что бы получить 1.0 жмыкаем дебильную кнопку обновить и получаем цену 150000 вместо 150

Короче это говнокод а не решение данной задачи

Если кто знает как подправить напишите!

Чтобы сделать комментарий, нужно авторизоваться на сайте!