Javascript 始终显示总计并停止显示NaN

Javascript 始终显示总计并停止显示NaN,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,为什么它会显示NaN,除非我在这里把值设为零?我希望它保持一个运行的总计,只显示占位符,但除非我将输入值设置为0,否则它将在总计显示的total div中显示为NaN $("body").on("blur", "#serviceContract,#gapInsurance,#extendedWarranty,#amtOwedOnTrade,#tradeInValue,#manufacturerRebate,#downPayment,#estimatedTaxesAndFees,#vehicleP

为什么它会显示NaN,除非我在这里把值设为零?我希望它保持一个运行的总计,只显示占位符,但除非我将输入值设置为0,否则它将在总计显示的total div中显示为NaN

$("body").on("blur", "#serviceContract,#gapInsurance,#extendedWarranty,#amtOwedOnTrade,#tradeInValue,#manufacturerRebate,#downPayment,#estimatedTaxesAndFees,#vehiclePrice",function() {
    updateTotal();
});
var updateTotal = function() {
    var input1 = parseInt($('#vehiclePrice').val());
    var input2 = parseInt($('#estimatedTaxesAndFees').val());
    var input3 = parseInt($('#downPayment').val());
    var input4 = parseInt($('#manufacturerRebate').val());
    var input5 = parseInt($('#tradeInValue').val());
    var input6 = parseInt($('#amtOwedOnTrade').val());
    var input7 = parseInt($('#extendedWarranty').val());
    var input8 = parseInt($('#gapInsurance').val());
    var input9 = parseInt($('#serviceContract').val());
   if (input1 ==undefined || input2 == undefined || input3 == undefined || input4 == undefined || input5 == undefined || input6 == undefined || input7 == undefined || input8 == undefined ||input9 == undefined ) {
        $('#total').text(total);
    } else {
        var max = 40000;
        var total = input1 + input2 - input3 - input4 - input5 + input6 + input7 + input8 + input9;

        if (total > max) {
            $('#total').text('The maximum is ' + max);
            $('#total1').val(40000);
        } else {
            $('#total').text(total);
            $('#total1').val(total);
        }
    }
};

因为当字段为空时,它不执行parseInt,返回NaN

您可以通过在每行上执行此操作来防止:

var input1 = parseInt($('#vehiclePrice').val()) || 0;
如果val为“falsy”,它将计算为0


正如CodeMoose所说:


“使用parseInt时始终定义base-10:
parseInt($('#vehiclePrice').val(),10)

该参数是基数

基数 表示上述字符串基数的整数。始终指定此参数以消除读取器混淆并保证可预测的行为。当未指定基数时,不同的实现会产生不同的结果


取自

,因为当字段为空时,它不执行parseInt,返回NaN

您可以通过在每行上执行此操作来防止:

var input1 = parseInt($('#vehiclePrice').val()) || 0;
如果val为“falsy”,它将计算为0


正如CodeMoose所说:


“使用parseInt时始终定义base-10:
parseInt($('#vehiclePrice').val(),10)

该参数是基数

基数 表示上述字符串基数的整数。始终指定此参数以消除读取器混淆并保证可预测的行为。当未指定基数时,不同的实现会产生不同的结果


取自

,因为当字段为空时,它不执行parseInt,返回NaN

您可以通过在每行上执行此操作来防止:

var input1 = parseInt($('#vehiclePrice').val()) || 0;
如果val为“falsy”,它将计算为0


正如CodeMoose所说:


“使用parseInt时始终定义base-10:
parseInt($('#vehiclePrice').val(),10)

该参数是基数

基数 表示上述字符串基数的整数。始终指定此参数以消除读取器混淆并保证可预测的行为。当未指定基数时,不同的实现会产生不同的结果


取自

,因为当字段为空时,它不执行parseInt,返回NaN

您可以通过在每行上执行此操作来防止:

var input1 = parseInt($('#vehiclePrice').val()) || 0;
如果val为“falsy”,它将计算为0


正如CodeMoose所说:


“使用parseInt时始终定义base-10:
parseInt($('#vehiclePrice').val(),10)

该参数是基数

基数 表示上述字符串基数的整数。始终指定此参数以消除读取器混淆并保证可预测的行为。当未指定基数时,不同的实现会产生不同的结果



取自

使用parseInt时始终定义base-10:
parseInt($(“#车辆价格”).val(),10)
@CodeMoose为什么会这样?它不是默认以10为基数吗?这就是我想知道的。我真的去查过了。我将限制只能输入数字的密钥,并使用一些jq.validate。但是如果你不定义基数-10会发生什么呢?卡尔·安德烈·加农-顺便说一句,你的答案很好。谢谢。将在3分钟内接受它将以不同的方式以意外的方式解释字符串,通常返回到base-8。请参见使用parseInt时始终定义base-10:
parseInt($(“#车辆价格”).val(),10)
@CodeMoose为什么会这样?它不是默认以10为基数吗?这就是我想知道的。我真的去查过了。我将限制只能输入数字的密钥,并使用一些jq.validate。但是如果你不定义基数-10会发生什么呢?卡尔·安德烈·加农-顺便说一句,你的答案很好。谢谢。将在3分钟内接受它将以不同的方式以意外的方式解释字符串,通常返回到base-8。请参见使用parseInt时始终定义base-10:
parseInt($(“#车辆价格”).val(),10)
@CodeMoose为什么会这样?它不是默认以10为基数吗?这就是我想知道的。我真的去查过了。我将限制只能输入数字的密钥,并使用一些jq.validate。但是如果你不定义基数-10会发生什么呢?卡尔·安德烈·加农-顺便说一句,你的答案很好。谢谢。将在3分钟内接受它将以不同的方式以意外的方式解释字符串,通常返回到base-8。请参见使用parseInt时始终定义base-10:
parseInt($(“#车辆价格”).val(),10)
@CodeMoose为什么会这样?它不是默认以10为基数吗?这就是我想知道的。我真的去查过了。我将限制只能输入数字的密钥,并使用一些jq.validate。但是如果你不定义基数-10会发生什么呢?卡尔·安德烈·加农-顺便说一句,你的答案很好。谢谢。将在3分钟内接受它将以不同的方式以意外的方式解释字符串,通常返回到base-8。看见