【问题标题】:Jquery loop 2D form inputs and calculate values per array keyJquery循环2D表单输入并计算每个数组键的值
【发布时间】:2016-03-02 12:00:33
【问题描述】:

我正在尝试根据用户在使用二维名称的表单上的输入来计算票证总数。关于如何从输入字段名称中的每个键一次提取所有值,我已经搜索了 2 天。

<input type="text" name="service[]['qty']">
<input type="text" name="service[]['part_number']">
<input type="text" name="service[]['price']">

<input type="text" name="service[]['qty']">
<input type="text" name="service[]['part_number']">
<input type="text" name="service[]['price']">

<input type="text" name="service[]['qty']">
<input type="text" name="service[]['part_number']">
<input type="text" name="service[]['price']">

当用户在相应区域输入价格时,需要使用javascript/jQuery计算整个订单的总和并显示在屏幕底部。

这里是函数:

function calculate_ticket(){
  var total = 0;
  var data = $("input[name^='service[]']").serializeArray();
  $.each(data, function(i, field){
    $("#ticket_total").append(field.name + ":" + field.value + "<br />"); // for debugging.
  });
  console.debug(data);
  $('#ticket_price').html("$" + total.toFixed(2));
}

我希望做的是一次从每个键中提取所有数据,然后将“价格”乘以“数量”,然后将其添加到“ticket_price”中。表单“服务”输入区可以有无限数量的条目。

【问题讨论】:

    标签: javascript jquery arrays


    【解决方案1】:

    我终于想出了一个办法:)

    我将名称维度从 service[]['qty'] 切换到 service['qty'][] 并在数量和价格上都使用了 .serializeArray()。这是函数:

    function calculate_ticket(){
    var total = 0;
    var price = $("input[name^='service[\\'price\\']']").serializeArray();
    var qty = $("input[name^='service[\\'qty\\']']").serializeArray();
    $.each(price, function(i, field){
        total += qty[i].value * field.value;
    });
    $('#ticket_price').html("$" + total.toFixed(2));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-06
      • 2012-04-25
      • 1970-01-01
      • 2014-09-12
      • 2018-10-28
      • 1970-01-01
      • 2023-03-23
      • 2021-05-13
      相关资源
      最近更新 更多