Общая цена и количество в Javascripts

#javascript #php #html #laravel-5

#javascript #php #HTML #laravel-5

Вопрос:

Привет, ребята, я пытаюсь получить общую цену и количество каждого элемента. Итак, у меня фиксированная цена в 20 долларов. цена указана нормально, но она не учитывает количество каждого элемента….

HTML-код

HTML-Непрерывный

Это код для общего количества, и он отлично работает в поле ввода.

 function changeval() {
    $total = parseInt($("#A1").val())   parseInt($("#B1").val())   parseInt($("#C1").val())   parseInt($("#D1").val())   parseInt($("#E1").val());

    $('.A').val($("#A1").val());
    $('.B').val($("#B1").val());
    $('.C').val($("#C1").val());
    $('.D').val($("#D1").val());
    $('.E').val($("#E1").val());
    $('.total').val($total);
}
  

ВОТ в ЧЕМ ПРОБЛЕМА когда я добавляю этот код, цена получается хорошей, но количество больше не ОТОБРАЖАЕТСЯ.

 function changeval() {
    $price = parseInt($("#A1").val() * 20)   parseInt($("#B1").val() * 20)   parseInt($("#C1").val() * 20)   parseInt($("#D1").val()* 20)   parseInt($("#E1").val()* 20);

    $('.A').val($("#A1").val());
    $('.B').val($("#B1").val());
    $('.C').val($("#C1").val());
    $('.D').val($("#D1").val());
    $('.E').val($("#E1").val());
    $('.price').val($price);
}
  

итак, я хочу иметь что-то вроде этого

ЦЕНА = 40 КОЛИЧЕСТВО = 2
ЦЕНА = 20 КОЛИЧЕСТВО = 1 » » поскольку у меня 20 в качестве фиксированной цены. Любая помощь будет оценена.

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

1. Пожалуйста, разместите свой HTML-код.

2. кроме того, не помечайте вопросы javascript с помощью java. они не совпадают

3. Может быть, это как-то связано с умножением на 20 внутри parseInt метода вместо внешнего

4. Разместите свой HTML, чтобы мы могли лучше проконсультировать вас.

5. Привет, ребята, я загрузил html.

Ответ №1:

Если вы хотите получить как totalQuantity, так и TotalPrice, вам следует сначала вычислить totalQuantity, затем вычислить TotalPrice = totalQuantity * 20 (поскольку у вас фиксированная цена на все товары).

 $(document).ready(function() {
  // Handle onchange event for input number
  $('.qty').on('input', function() {

    $qty_total = 0;
    // Calculate total qty
    $(".qty").each(function() {
      $qty_total  = parseInt($(this).val());
    });

    // Update to Qty input
    $("#qty_total").val($qty_total);

    // Update to Price input
    $("#price_total").val($qty_total * 20);
  })
})  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <table>
    <tr>
      <td>Item A</td>
      <td><input value=1 type="number" id="qty1" class="qty"></td>
    </tr>
    <tr>
      <td>Item B</td>
      <td><input value=2 type="number" id="qty2" class="qty"></td>
    </tr>
    <tr>
      <td>Item C</td>
      <td><input value=3 type="number" id="qty3" class="qty"></td>
    </tr>
    <tr>
      <td>Item D</td>
      <td><input value=4 type="number" id="qty4" class="qty"></td>
    </tr>
    <tr>
      <td>Item E</td>
      <td><input value=5 type="number" id="qty5" class="qty"></td>
    </tr>
    <tr>
      <td>Total Qty</td>
      <td><input id="qty_total"></td>
    </tr>
    <tr>
      <td>Total Price</td>
      <td><input id="price_total"></td>
    </tr>
  </table>
</div>  

Ответ №2:

Причина в том, что вы используете одно и то же имя функции для всех функций onchange. т.е. для обновления цены и общего количества вы используете одну и ту же функцию changeval1().

Попробуйте изменить имя функции. Обе функции имеют одинаковые имена. Одна функция обновляет общую сумму, а другая — цену. Таким образом, когда обе функции имеют одинаковое имя, обновляется как цена, так и общее количество.

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

1. Что касается моего понимания ситуации, это не две разные функции, а две разные версии одной и той же функции.

2. две разные версии, но с одинаковым названием. не так ли?

3. да, я только что внес исправление. На самом деле я не уверен, что это правильный способ получить общую цену, я просто пытаюсь посмотреть, что работает.