Корзина ПЛЮС И МИНУС Рассчитать итог - PullRequest
0 голосов
/ 01 января 2019

У меня есть корзина для покупок, и мне нужно получить значение увеличения элемента (+ и -) и добавить его к цене товара.

Корзина для покупок +/- Control

enter image description here

На мой взгляд, код выглядит следующим образом.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<td class="cart-qty nostretch text-center">
                <div class="spinner" data-addclass-on-smdown="spinner-sm">
                    <button type="button" class="btn btn-icon rounded-circle" id="btnMinus"><i data-feather="minus"></i>-</button>
                    <input type="number" class="form-control" value="1" min="1" max="999" id="numberCol">
                    <button type="button" class="btn btn-icon rounded-circle" d="btnPlus"><i data-feather="plus"></i>+</button>
                </div>
            </td>
            <td class="cart-price text-right">
                <span class="roboto-condensed bold" id="primaryTotal">Rs:@item.ItemPrice</span>
            </td>
}

, а также я пытался получить элемент No.Of в функции On change ... но это не удача. Мне нужно, когда кто-то увеличивает или уменьшает элемент, затем необходимо вычислитьцена в соответствии с ним.

Мой JQuery

 $(document).ready(function () {
    $("#btnMinus, #btnPlus").click(function (e) {
        alert($("#numberCol").val());
        $("#primaryTotal").val('@item.ItemPrice'+);
        debugger;
    });
});

1 Ответ

0 голосов
/ 02 января 2019

Вам нужно где-то получить значение для цены, поэтому я установил data-price и добавил пару диапазонов, чтобы упростить форматирование.У вас была опечатка для идентификатора одного элемента, поэтому я исправил это.Я также добавил таблицу / tbody, чтобы упростить тестирование моего образца.Если у вас их много в таблице, вам НЕ нужно использовать идентификаторы и использовать вместо них классы, относящиеся к кликам.Я также обратился к проблемам со «счетом», когда запись могла быть сделана, например, к 1.67 и округлил ее до целого числа.

Я добавил сверхпростую проверку таким способом Math.round().Обратите внимание, как я выставил цену при использовании модели представления - но установил значение по умолчанию для этого примера, удалите его перед использованием.

НЕ полагайтесь на это для реальных значений, это очень легко взломать для бесплатных вещейтак же и на стороне сервера.

function calculateValues(e) {
  console.log("recalc");
  let item = $('#numberCol');
  let itemCount = Math.round(item.val());
  item.val(itemCount);
  let total = $("#primaryTotal");
  let price = total.find(".price");
  let priceValue = price.data("price") * 1;
  let totalValue = priceValue * itemCount;
  price.text(totalValue.toFixed(2));
 // console.log("recalc val", priceValue, itemCount, totalValue);

}
$(function() {
  //setup a fake value remove for real code
  $("#primaryTotal").find(".price").data("price", 123.45);
  $("#btnMinus").add("#btnPlus").on('click', function(e) {
    //console.log('plus minus', this.id);
    let num = $('#numberCol');
    let numValue = Math.round(num.val()) * 1;
    if (numValue < num.attr("min")) {
      numValue = num.attr("min") * 1;
      num.val(Math.round(numValue));
    }
    if (numValue > num.attr("max")) {
      numValue = num.attr("max") * 1;
      num.val(Math.round(numValue));
    }
    if (this.id === "btnMinus") {
      numValue--;
    } else {
      numValue++;
    }
    num.val(numValue).trigger('change');
   // console.log('plus minus val', numValue);
    //calculateValues(e);
  });
  $("#numberCol").on('change', calculateValues);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="mytable">
  <tbody>
    <td class="cart-qty nostretch text-center">
      <div class="spinner" data-addclass-on-smdown="spinner-sm">
        <button type="button" class="btn btn-icon rounded-circle" id="btnMinus"><i data-feather="minus"></i>-</button>
        <input type="number" class="form-control" value="1" min="1" max="999" id="numberCol" />
        <button type="button" class="btn btn-icon rounded-circle" id="btnPlus"><i data-feather="plus"></i>+</button>
      </div>
    </td>
    <td class="cart-price text-right">
      <span class="roboto-condensed bold" id="primaryTotal"><span>Rs:</span><span class="price" data-price="@item.ItemPrice">@item.ItemPrice</span>
    </td>
  </tbody>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...