使用JavaScript

时间:2018-06-10 03:36:38

标签: javascript jquery laravel-5 axios

尝试使用JavaScript在按钮点击时增加/减少数量。

JavaScript已经编写(并且有效),可以在文本字段中输入新值,文本字段中的值反映新值和总更新(基于价格*数量)。

前面提到的脚本:

<script>
  (function() {
    const className = document.querySelectorAll('.quantity-no')

    Array.from(className).forEach(function(element) {
      element.addEventListener('change', function() {
        const id = element.getAttribute('data-id')

        axios.patch(`/cart/${id}`, {
          quantity: this.value
        })

        .then(function (response) {
          // console.log(response);
          window.location.href = '{{ route('cart.index') }}'
        })

        .catch(function (error) {
          // console.log(error);
          window.location.href = '{{ route('cart.index') }}'
        });
      })
    })
  })();
</script>

增量/减量按钮更新文本字段中的值,但数量的变化不会反映在总数中(基于价格*数量)。

上述代码:

<script>
  function decrementQuantity(qty, rowId) {
    var inputQuantityNo = $('.quantity-no' + rowId);
    var newQuantity = parseInt($(inputQuantityNo).val()) - 1;

    axios.patch(`/cart/${id}`, {
      quantity: newQuantity.value
    })

    .then(function (response) {
      window.location.href = '{{ route('cart.index') }}'
    })

    .catch(function (error) {
      window.location.href = '{{ route('cart.index') }}'
    });
  }
</script>

我没有打算尝试为增量编写脚本。

以下是其他适用的代码:

<div class="col-2">
 <div class="quantity d-flex align-items-center">
  <div class="dec-btn" onclick="decrementQuantity($item->qty, $item->rowId)"> - </div>
  <input type="text" value="{{ $item->qty }}" class="quantity-no" data-id="{{ $item->rowId }}">
  <div class="inc-btn" onclick="incrementQuantity($item->qty, $item->rowId"> + </div>
 </div>
</div>

0 个答案:

没有答案