我正在开发一个Web应用程序,想要创建类似发票计算的东西,但是要使用子组,所以最后我需要组总计和小计的结果。
这是我到目前为止所得到的:Fiddle
$(function() {
$("#items").keyup(function(event) {
var total = 0;
$("#items .targetfields").each(function() {
var qty = parseInt($(this).find(".quantity").val());
var rate = parseInt($(this).find(".rate").val());
var subtotal = qty * rate;
$(this).find(".subtotal").val(subtotal);
if (!isNaN(subtotal)) total += subtotal;
});
$("#total").html(total);
});
})
最终,我正在努力实现这样的目标:
我找到了很多关于发票计算的例子,但没有关于小组或小计的例子。
我希望有人能用一个小例子来帮助我。
答案 0 :(得分:1)
看看这是否是您的想法:http://jsfiddle.net/yaMRQ/23/
<table class="items">
<tr class="targetfields">
<td><input type="text" name="quantity" class="quantity" /></td>
<td><input type="text" name="rate" class="rate" size="5" /></td>
<td><input type="text" name="sub_total" class="subtotal" /></td>
</tr>
<tr class="targetfields">
<td><input type="text" name="quantity" class="quantity" /></td>
<td><input type="text" name="rate" class="rate" size="5" /></td>
<td><input type="text" name="sub_total" class="subtotal" /></td>
</tr>
<tr>
<td>Group:</td>
<td colspan="2" align="right" class="g_total"></td>
</tr>
</table>
<table class="items">
<tr class="targetfields">
<td><input type="text" name="quantity" class="quantity" /></td>
<td><input type="text" name="rate" class="rate" size="5" /></td>
<td><input type="text" name="sub_total" class="subtotal" /></td>
</tr>
<tr class="targetfields">
<td><input type="text" name="quantity" class="quantity" /></td>
<td><input type="text" name="rate" class="rate" size="5" /></td>
<td><input type="text" name="sub_total" class="subtotal" /></td>
</tr>
<tr>
<td>Group:</td>
<td colspan="2" align="right" class="g_total"></td>
</tr>
</table>
<br/>---<br/>Total: <span id="total"></span>
$(function() {
$(".items").keyup(function(event) {
var total = 0;
$(".items").each(function(){
var gtotal = 0;
$(this).find(".targetfields").each(function() {
var qty = parseInt($(this).find(".quantity").val());
var rate = parseInt($(this).find(".rate").val());
var subtotal = qty * rate;
$(this).find(".subtotal").val(subtotal);
if(!isNaN(subtotal))
gtotal+=subtotal;
});
$(this).find(".g_total").html("EUR "+gtotal);
total+=gtotal
});
$("#total").html("EUR "+total);
});
})