此代码不是我的代码,但我想对其进行编辑以使其与我的需求兼容,所以我有2个数字框,我想在输入数字时显示小计和总数,但是代码只能得到第一个数字框的第一个值(成人),并在第二个数字框和总计的小计中显示$ Nan。 图片1: https://i.ibb.co/p3qFdNy/stackover.png)。 但是当我定义var qty = qty1 + qty2 它向我显示了$ Nan的所有内容。 图片2: https://i.imgur.com/y2ytA75.png
<input type="number" name="adult_count" id="adults" required>
<input type="number" name="senior_count" id="senior" required>
update_amounts();
$('input').change(update_amounts);
function update_amounts() {
var sum = 0.0;
$('#tickets > tbody > tr').each(function () {
var qty1 = $(this).find('#adults').val();
var qty2 = $(this).find('#senior').val();
var price = $(this).find('.price').text().replace(/[^\d.]/, '');
var qty = qty1 + qty 2;
var amount = (qty * price);
sum += amount;
$(this).find('.subtotal').text('{{ \App\Helpers\Themes::getSymbolForCurrency() }}' + amount);
});
$('#total').val('{{ \App\Helpers\Themes::getSymbolForCurrency() }}' + sum);
};
答案 0 :(得分:0)
您必须将值解析为整数
var qty1 = parseInt($(this).find('#adults').val());
var qty2 = parseInt($(this).find('#senior').val());
答案 1 :(得分:0)
是的,您需要解析,但您需要声明文本框字段的ID,而不必仅找到它们
var qty1 = parseInt($('#adults')。val());
var qty2 = parseInt($('#senior')。val());
,您还需要声明价格字段和总计的ID属性 然后进行计算,您只需要将计算的值放入总计字段 像$('#Total')。val(calculatedvalue);
答案 2 :(得分:0)
您需要将值解析为整数并处理非数字情况。在我的示例中,如果无法解析,则使用0
var qty1 = parseInt($(this).find('#adults').val()) || 0;
var qty2 = parseInt($(this).find('#senior').val()) || 0;
这里有一个示例,用您的代码(简化)在实践中显示: