我正在尝试使用二维名称根据表单上的用户输入计算票证总数。我一直在搜索有关如何从输入字段名称中的每个键一次提取所有值的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));
}
我希望做的是立即从每个密钥中提取所有数据,然后简单地将价格乘以&#39;由数量&#39;然后将其添加到&#39; ticket_price&#39;。表格&#39;服务&#39;输入区域可以有无限数量的条目。
答案 0 :(得分:0)
我想办法最终做到这一点:)
我将服务[] ['qty']中的名称维度切换为service ['qty'] [],并在qty和price上使用.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));
}