Как выполнить вычисление для поля шаблона jinja для цикла с помощью JavaScript - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть список элементов, которые я запросил из моей базы данных, используя цикл for. Я хочу умножить цену каждого элемента на его количество, чтобы получить новую общую цену, а также получить общую цену для всех элементов в цикле for. Как я могу добиться этого с помощью JS?

Я последовал этому примеру https://www.jqueryscript.net/form/Do-Calculations-Form-Fields-AutoCalc.html, но работает только первый элемент в цикле for, а все остальные элементы в списке имеют одинаковую сумму спервый элемент

Это часть моего кода

<form name="cart">
<table class="timetable_sub">
 <thead>
  <tr>

   <th>Product</th>
   <th>Product Name</th>
   <th>Quantity</th>
   <th>Price</th>
   <th>Total</th>
   <th>Remove</th>
  </tr>
 </thead>
 <tbody>
  {% for item in user_cart %}
   <tr class="rem1">    
   <td class="invert">{{item.item_name}}
       </td>
   <td class="invert"><input type="number" name="qty" value=" 
                {{item.quantity}}">     
    </td>
      <td class="invert"><input type="number" name="price" disabled 
      value="{{item.amount}}">
       </td>
   <td class="invert"><input type="text" name="item_total" value="" 
       jAutoCalc="{qty} * {price}">
       </td>
</tr>
{% endfor %}
</tbody></table>
<input type="text" name="sub_total" value="" 
     jAutoCalc="SUM({item_total})">
</form>

Я хочу достичь результата в примере https://www.jqueryscript.net/demo/Do-Calculations-Form-Fields-AutoCalc/, но я получаю это https://drive.google.com/file/d/1CYl3olVoYk6K-n96zxXpf11B1QWZ7FWA/view?usp=sharing

1 Ответ

1 голос
/ 30 сентября 2019

Вы используете один и тот же name для каждой строки таблицы. Добавьте другой идентификатор (например, loop.index), чтобы они были уникальными:

{% for item in user_cart %}
...
<input type="number" name="qty_{{ loop.index }}" value="{{item.quantity}}">
...
<input type="number" name="price_{{ loop.index }}" 
...
<input type="text" name="item_total_{{ loop.index }}" value="" 
       jAutoCalc="{qty_{{ loop.index }}} * {price_{{ loop.index }}}">
...
{% endfor %}
...