我正在尝试计算所有输入框值的总和
<input class='total' type='number' name='total[]' readonly>
(它们是只读的,其值也是从另一个 javascript 计算函数获取的)。
我有这个jsFiddle
我使用以下 JavaScript 对只读输入框的所有值求和。好像不行。
var $form = $('#invEntry'),
$sumDisplay = $('#totaldp');
$form.delegate('.total', 'change', function ()
{
var $summands = $form.find('.total');
var sum = 0;
$summands.each(function ()
{
var value = Number($(this).val());
if (!isNaN(value)) sum += value;
});
$sumDisplay.val(sum);
});
最佳答案
这是因为“change”事件仅在用户更改文本框中的值时才会引发,而不是在通过 DOM 操作进行更改时才会引发。您可以通过更新总文本框来触发计算。
$("#InputsWrapper").on('change', '.discount',function(){
var tr = $(this).closest('tr');
var quantity=tr.find(".qty").val();
var percent=tr.find(".discount").val();
var price=tr.find(".price").val();
var tprice = price * quantity
var discountpercent=percent / 100;
var discountprice=(tprice * discountpercent );
tr.find(".total").val(tprice - discountprice);
calculateTotals()
});
function calculateTotals()
{
var $summands = $('#invEntry').find('.total');
var sum = 0;
$summands.each(function ()
{
var value = Number($(this).val());
if (!isNaN(value)) sum += value;
});
$('#totaldp').val(sum);
}
关于javascript - 使用javascript动态添加只读输入框的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23758918/