Javascript 始终显示总计并停止显示NaN
为什么它会显示NaN,除非我在这里把值设为零?我希望它保持一个运行的总计,只显示占位符,但除非我将输入值设置为0,否则它将在总计显示的total div中显示为NaNJavascript 始终显示总计并停止显示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
$("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。看见