Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery循环2D表单输入并计算每个数组键的值_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript Jquery循环2D表单输入并计算每个数组键的值

Javascript Jquery循环2D表单输入并计算每个数组键的值,javascript,jquery,arrays,Javascript,Jquery,Arrays,我正在尝试根据用户在使用二维名称的表单上的输入来计算总票数。我已经搜索了两天如何从输入字段名称中的每个键一次提取所有值 <input type="text" name="service[]['qty']"> <input type="text" name="service[]['part_number']"> <input type="text" name="service[]['price']"> <input type="text" name="s

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

<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));
}
函数计算\u票证(){
var合计=0;
变量数据=$(“输入[name^='service[]']”)。serializeArray();
$.each(数据、函数(i、字段){
$(“#票证总数”)。追加(field.name+”:“+field.value+”
;//用于调试。 }); 调试(数据); $('门票价格').html(“$”+total.toFixed(2)); }

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

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

我将名称维度从服务[]['qty']切换到服务[]'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));
}