Своя кнопка изменения количества товара в корзине

Элемент в чанке выглядит так
<form method="post" class="ms2_form">
<input type="hidden" name="key" value="{$product.key}">
<div class="qty"> 
<button type="submit" class="btn btn-default minus_btn" name="ms2_action" value="cart/change"></button>
<input type="text" name="count" placeholder="1" class="txtbox" value="{$product.count}" >
<button type="submit" class="plus_btn" name="ms2_action" value="cart/change"></button> 
</div>
</form>
при нажатии кнопок + и — не происходит обновления суммы
но например если ввести в поле количества нужную цифру то подхватывается аяксом…

подскажите что не так сделал
Евгений
15 октября 2018, 02:58
modx.pro
1 590
0

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

Баха Волков
15 октября 2018, 04:58
1
-1
Всё, всё сделали неправильно

<form method="post" class="ms2_form">
    <input type="hidden" name="key" value="{$product.key}">
    <div class="qty"> 
        <button class="btn btn-default minus_btn"></button>
        <input type="text" name="count" class="txtbox" value="{$product.count}" >
        <button class="btn btn-default plus_btn"></button>
        <button class="d-none" type="submit" name="ms2_action" value="cart/change"></button>
    </div>
</form>

Если уж button-ами хотите
    Евгений
    15 октября 2018, 11:26
    0
    баттоны поставил думал поможет, изначально это были
    <a>

    ваш пример не работает :)
      Баха Волков
      15 октября 2018, 12:45
      -1
      Чанк и код отвечающий за +- покажите
        Евгений
        16 октября 2018, 02:18
        0
        какой еще чанк +-? это просто кнопки внутри корзины
          Андрей
          16 октября 2018, 13:39
          +1
          А как кнопки должны понимать, что они должны изменять кол-во? =)

          <form method="post" class="ms2_form form-inline" role="form">
              <input type="hidden" name="key" value="{$product.key}"/>
              
              <button class="minus" data-extend="{$product.id}">-</button>
                  <input type="text" id="count{$product.id}" class="input-text qty text" min="1" title="Количество" value="{$product.count}" name="count">
              <button class="plus" data-extend="{$product.id}">+</button>
              
              <button class="btn btn-default" type="submit" name="ms2_action" value="cart/change">
                  <i class="glyphicon glyphicon-refresh"></i>
              </button>
          </form>

          И скрипт:
          <script>
          $(document).ready(function(){
          		
              $('.minus').bind('click', function()
                {
                  var itemNum = $(this).attr('data-extend');
                  var c = $("#count"+itemNum).val();
                      c--;
                  $("#count"+itemNum).val( c);
                });
              
              $(".plus").click(function()
                {
                  var itemNum = $(this).attr('data-extend');
                  var c = $("#count"+itemNum).val();
                      c++;
                  $("#count"+itemNum).val( c);
                });
              
          });
          </script>
            Евгений
            17 октября 2018, 02:30
            0
            так они меняют количество в поле, но аякс не подхватывает эти изменения
            а если в самом поле просто руками поменять то подхватывает, вот в чем проблемка
              Pavel Zarubin
              17 октября 2018, 03:02
              0
              После записи дергай событие change и все будет подхватываться
                Евгений
                17 октября 2018, 03:09
                0
                как?
                  Pavel Zarubin
                  17 октября 2018, 09:36
                  0
                  Прежде чем заниматься разработкой, стоит хотя бы выучить азы технологии на которой собираешься разрабатывать.
                  <script>
                  $(document).ready(function(){
                  		
                      $('.minus').bind('click', function()
                        {
                          var itemNum = $(this).attr('data-extend');
                          var c = $("#count"+itemNum).val();
                              c--;
                          $("#count"+itemNum).val( c).trigger('change');
                        });
                      
                      $(".plus").click(function()
                        {
                          var itemNum = $(this).attr('data-extend');
                          var c = $("#count"+itemNum).val();
                              c++;
                          $("#count"+itemNum).val( c).trigger('change');
                        });
                      
                  });
                  </script>
              Евгений
              17 октября 2018, 03:09
              0
              дошло почему но не знаю как подправить…
              jQuery(function($) {
                  "use strict";
              
                  var thisrowfield;
                  $('.plus_btn').click(function(e) {
                      e.preventDefault();
                      thisrowfield = $(this).parent().parent().parent().find('.txtbox');
                      var currentVal = parseInt(thisrowfield.val());
                      if (!isNaN(currentVal)) {
                          thisrowfield.val(currentVal + 1);
                      } else {
                          thisrowfield.val(1);
                      }
                  });
                  $(".minus_btn").click(function(e) {
                      e.preventDefault();
                      thisrowfield = $(this).parent().parent().parent().find('.txtbox');
                      var currentVal = parseInt(thisrowfield.val());
                      if (!isNaN(currentVal) && currentVal > 1) {
                          thisrowfield.val(currentVal - 1);
                      } else {
                          thisrowfield.val(1);
                      }
                  });
              вот этот скрипт срабатывает… если его убрать то цифра в инпуте не меняется но подхватывается аяксом
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      10