Автоматическое обновление товара в корзине при изменении в input

Доброго дня!

Не могу понять как автоматически изменять количество товара в шаблоне корзины, при оформлении заказа
Вот блок

<td class="count">
     <form method="post" class="ms2_form" role="form">
        <input type="hidden" name="key" value="{$product.key}"/>
            <div class="quantity">
                <div class="pro-qty"> 
                    <span class="inc qtybtn"></span>
		    <span class="dec qtybtn"></span>
		    <input type="text" name="count" value="1" min="1" >
                </div>
            </div>
    </form>
 </td>
Я так понимаю, что нужно какую-то js что бы подхватывала на нажатие «inc»/«dec» и передавала post с cart/change
Но не могу понять как это реализовать
minishop2 fenom

И можно ли менять сумму у товара на лету, при изменении колва, а не только общую сумму покупок?
Антон
31 июля 2020, 15:07
modx.pro
1 082
0

Комментарии: 9

Евгений Webinmd
31 июля 2020, 19:43
0
1) Меняем значение в корзине
JS
/* cart plus/minus | quantity */
 $('body').delegate('.bminus', 'click', function () {
    var $input = $(this).parent().find('input');
    var val = +$input[0].defaultValue;
    var count = parseInt($input.val()) - 1;
    count = count < 1 ? 1 : count; 
    $input.val(count);
    $input.change();
    return false;
});

$('body').delegate('.bplus','click', function () {
    var $input = $(this).parent().find('input');
    var val = +$input[0].defaultValue; 
    $input.val(parseInt($input.val()) + 1);
    $input.change();
    return false;
});

HTML
<form method="post" class="ms2_form" role="form">
        <input type="hidden" name="key" value="{$product.key}"/>
        <div class="quantity">
            <input type="number" name="count" value="{$product.count}" min="1" required>
            <span class="bminus"></span>
            <span class="bplus"></span>
        </div>
    </form>

2) Сумма товара в корзине: вытащите код из этого PR github.com/bezumkin/miniShop2/pull/358
    Антон
    01 августа 2020, 12:51
    0
    Да, я пробовал так…
    Нашел решение где-то, но у меня почему-то не подхватывается событие(
    Ох, печаль-беда

    Но за ответ спасибо)
      Евгений Webinmd
      01 августа 2020, 13:49
      0
      это с рабочего проекта, смотрите консоль, может у вас jquery не подключен или еще что-то
        Антон
        01 августа 2020, 14:27
        0
        Сначала подключаю jquery, потом скрипт ваш…
        Дело в том, что у меня к классу добавляется еще один. То есть в коде так:
        <span class="inc"></span>
        <span class="dec"></span>
        А на рабочем проекте подставляются еще классы:
        <div class="pro-qty count"><span class="dec qtybtn">-</span>
        <input type="number" name="count" value="15" min="1" required="">
        <span class="inc"></span>
        <span class="dec"></span>
        <span class="inc qtybtn">+</span></div>
          Баха Волков
          01 августа 2020, 15:41
          0
          Не могу понять как автоматически изменять количество товара в шаблоне корзины, при оформлении заказа
          Вопрос не в этот форум. Я не говорю, что нельзя, но вам бы на форуме по js ответили бы исчерпывающе и давно. miniShop2 умеет это делать самостоятельно, он всего лишь ждет когда количество товара изменится, соответственно вам либо на форумы по js, либо используйте <input type="number">
    Ибраим Велиев
    01 августа 2020, 15:46
    0
    $('.dec').click(function () {
        var $input = $(this).parent().find('input[type=number]');
        var count = parseInt($input.val()) - 1;
        count = count < 1 ? 1 : count;
        $input.val(count);
        $input.change();
        return false;
    });
    
    $('.inc').click(function () {
        var $input = $(this).parent().find('input[type=number]');
        $input.val(parseInt($input.val()) + 1);
        $input.change();
        return false;
    });
      Антон
      01 августа 2020, 15:58
      0
      +|- количество меняют в инпуте, но корзина при этом не обновляется…
        Баха Волков
        01 августа 2020, 16:37
        0
        Загрузите собственные чанки ms2 и проверьте, всё ли работает, если да, то значит у вас селекторы не указаны/указаны неверно, чтобы решить эту проблему, вам нужно внимательно смотреть на чанк корзины и на ваш собственный. А если у вас с родными чанками не будет обновляться, то напишите issue а репозитории ms2, а мы постараемся помочь
        Максим
        03 августа 2020, 10:58
        0
        Если правильно понял суть, то…
        В оригинальном чанке в этой форме есть кнопка «обновить». Если её вставить и скрыть, то должно изменяться автоматически количество и стоимость.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          9