【发布时间】:2014-10-09 18:28:44
【问题描述】:
我觉得有点愚蠢,但我无法让它发挥作用。我想将两个输入相乘,然后将所有总数相加以获得总计,但它不起作用,我不知道为什么。我一直在研究这个主题的几个主题,比如this one,但我看不出我做错了什么。
$(document).ready(function(){
$('.qtyorder').on("keyup change",function(){
update_amounts();
});
});
function update_amounts(){
var sum = 0.00;
$('#ordertable > tbody > tr').each(function(){
var price = $(this).find('.unitprice').val();
var qty = $(this).find('.qtyorder').val();
var amount = (qty * price)
sum+=amount;
$(this).find('.subtotal').text('' + amount);
});
$('.ordertotal').text(sum);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table class="order-table" id="ordertable">
<thead>
<tr>
<th class="order-name"></th>
<th class="order-price">Prix</th>
<th class="order-qtytotal">Qty</th>
<th class="order-total">Total</th>
</tr>
</thead>
<tbody>
<tr>
<td class="order-name"><h2>Product1</h2></td>
<td class="order-price">
<input type="text" name="unitprice" class="unitprice" value="30" readonly="readonly" tabindex="-1">
</td>
<td class="order-qtytotal">
<input type="number" class="qtyorder" name="qtyorder" min="0">
</td>
<td class="order-total">
<input type="text" class="subtotal" name="subtotal" readonly="readonly" tabindex="-1" value="0.00">
</td>
</tr>
<tr>
<td class="order-name"><h2>Product2</h2></td>
<td class="order-price">
<input type="text" name="unitprice" class="unitprice" value="40" readonly="readonly" tabindex="-1">
</td>
<td class="order-qtytotal">
<input type="number" class="qtyorder" name="qtyorder" min="0">
</td>
<td class="order-total">
<input type="text" class="subtotal" name="subtotal" readonly="readonly" tabindex="-1" value="0.00">
</td>
</tr>
</tbody>
</table>
<div class="sommeorder">
<label for="ordertotal">Total</label>
<input type="text" class="ordertotal" name="ordertotal" readonly="readonly" tabindex="-1" value="0.00">
</div>
【问题讨论】:
-
什么不起作用?你有错误吗?
-
您可能需要用
parseFloat()包围qty和price。如var amount = (parseFloat(qty) * parseFloat(price)) -
我没有错误,只是在
subtotal和ordetotal输入中没有显示任何内容...
标签: jquery