Javascript 输入值始终等于0

Javascript 输入值始终等于0,javascript,jquery,Javascript,Jquery,我正在安装一个计算,我想通过对每辆车使用特殊折扣来完成它。如果我在没有复选框的情况下使用input domnpayment函数,它总是会弹出我的首付款大于95%,因为变量FinalHeilePriceValue的值等于0,首付款的百分比为无穷大,而变量FinalHeilePricePlusBuyback有它自己的值。我哪里出错了 $(函数(){ $(“#priceVehicle”).keyup(函数(){ var str=$(this.val(); str=str.replace(/\D+/g

我正在安装一个计算,我想通过对每辆车使用特殊折扣来完成它。如果我在没有复选框的情况下使用input domnpayment函数,它总是会弹出我的首付款大于95%,因为变量FinalHeilePriceValue的值等于0,首付款的百分比为无穷大,而变量FinalHeilePricePlusBuyback有它自己的值。我哪里出错了

$(函数(){
$(“#priceVehicle”).keyup(函数(){
var str=$(this.val();
str=str.replace(/\D+/g',);
$(this.val(str.replace(/\d(?=(?:\d{3})+(?!\d))/g,$&');
})//end PRICE VECTOR keyup
$(“#首付”)。在('keyup',function()上{
this.value=this.value.replace(//g',);
var编号=此值;
this.value=number.replace(/\B(?=(\d{3})+(?!\d))/g,“”;
});//结束首期付款
var vehicleFinanceValue=parseInt($(“输入[name=vehicleFinanceValue]”).val().replace(//g',)| | 0,
tradeInValue=parseInt($(“输入[name=tradeInValue]”).val().replace(//g',)| | 0,
buyBackValue=parseInt($(“输入[name=buyBackValue]”).val().replace(//g',)| | 0,
finalVehiclePriceValue=parseInt($(“输入[name=finalVehiclePriceValue]”).val()。替换(//g',)| | 0,
finalVehiclePricePlusBuyBack=parseInt($(“输入[name=finalVehiclePricePlusBuyBack]”).val().replace(//g',)| | 0;
$(“#listVehicle”).更改(函数(){
var listVehicle=$(this.val();
vehicleFinanceValue=(listVehicle==“vehicleOne”)?20000:
(listVehicle==“vehicleTwo”)?10000:0;
tradeInValue=(listVehicle==“vehicleOne”)?20000:
(listVehicle==“vehicleTwo”)?10000:0;
回购价值=(listVehicle==“vehicleOne”)?10000:
(listVehicle==“vehicleTwo”)?10000:0
控制台日志(车辆财务值);
$(“#车辆融资价值”).val(车辆融资价值);
$(“#贸易无效”).val(贸易无效);
美元(“#回购价值”).val(回购价值);
});//结束更改列表
$(“输入[name=priceVehicle]”)。更改(函数(){
var vehiclePrice=parseInt($(“输入[name=priceVehicle]”).val().replace(//g',)| | 0,
最终价格=车辆价格;
最终车辆价格回购=车辆价格;
$($(输入[name=finalVehiclePriceValue]).val($(this.val());
$($input[name=finalHeilePricePlusBuyback]).val($(this.val());
$(“#价格车辆”).val(车辆价格);
美元(“#finalVehiclePriceValue”).val(finalVehiclePriceValue);
美元(“#最终HiclepricePlusBuyback”).val(最终HiclepricePlusBuyback);
console.log(finalVehiclePriceValue);
日志(最终HiclepricePlusBuyback);
});//结束车辆更换
$('.salesscheckbox输入[type=“checkbox”]')。更改(函数(){
var vehicleList=$(“#listVehicle”).val(),
vehiclePrice=parseInt($(“输入[name=priceVehicle]”).val()。替换(//g',)| | 0,
vehicleFinance=$(“输入[名称=vehicleFinance]”),
贸易额=$(“输入[名称=贸易额]”);
如果(车辆财务为(“:选中”)和车辆列表==“车辆”){
最终车辆价格=(车辆价格-车辆财务价值);
最终定价回购=(车辆价格-(车辆融资价值+回购价值));
}否则,如果(交易信息为(“:选中”)&&vehicleList==“vehicleOne”){
最终车辆价格=(车辆价格-交易无效);
最终车辆价格回购=(车辆价格-(车辆融资价值+交易无效价值+回购价值));
}否则{
最终价格=车辆价格;
最终HiclepricePlusBuyback=车辆价格-回购价值;
}
美元(“#finalVehiclePriceValue”).val(finalVehiclePriceValue.tolocalesting(‘ru-ru’);
$(“#FinalHeplePricePlusBuyback”).val(FinalHeplePricePlusBuyback.toLocaleString('ru-ru');
console.log(finalVehiclePriceValue);
});//结束销售复选框
$(“输入[名称=首付”)。更改(函数(){
var downPayment=parseInt($(“输入[name=downPayment]”).val().replace(//g',)| | 0;
var downPaymentInPercent=parseInt($($input[name=downPaymentInPercent]).val();
首付款百分比=数字((首付款/最终价格)*100)。固定(2);
console.log(downPaymentInPercent);
console.log(finalVehiclePriceValue);
日志(最终HiclepricePlusBuyback);
console.log(首付);
$(“#downPaymentInPercent”).val(downPaymentInPercent+“%”);
$(“#downPaymentValue”).html(downPayment.tolocalesting('ru-ru');
如果(首付百分比<10){
提醒(“首期付款必须大于10%”;
}否则,如果(首付百分比>95){
提醒(“首期付款不得超过95%”;
}
})结束首付
});//结束函数


在您的文件阅读中,您有:

var vehicleFinanceValue = parseInt($("input[name=vehicleFinanceValue]").val().replace(/ /g, '')) || 0,
  tradeInValue = parseInt($("input[name=tradeInValue]").val().replace(/ /g, '')) || 0,
  buyBackValue = parseInt($("input[name=buyBackValue]").val().replace(/ /g, '')) || 0,
  finalVehiclePriceValue = parseInt($("input[name=finalVehiclePriceValue]").val().replace(/ /g, '')) || 0,
然后在
$(“input[name=priceVehicle]”)中更改(function(){
您有格式混乱的:

var vehiclePrice = parseInt($("input[name=priceVehicle]").val().replace(/ /g, '')) || 0,

  finalVehiclePriceValue = vehiclePrice;
finalVehiclePricePlusBuyBack = vehiclePrice;
这基本上是:

var vehiclePrice = ...
var finalVehiclePriceValue = vehiclePrice;
finalVehiclePricePlusBuyBack = vehiclePrice;
因此,您正在这个单击处理程序中创建第二个变量,并将其设置为正确的值,而不是保持为零的外部定义变量

一个像样的IDE会帮您选择这个,或者通过jslint,甚至使用严格模式


我的建议是每个var只声明一个变量,即:

var vehicleFinanceValue = parseInt($("input[name=vehicleFinanceValue]").val().replace(/ /g, '')) || 0;
var tradeInValue = parseInt($("input[name=tradeInValue]").val().replace(/ /g, '')) || 0;
var buyBackValue = parseInt($("input[name=buyBackValue]").val().replace(/ /g, '')) || 0;
var finalVehiclePriceValue = parseInt($("input[name=finalVehiclePriceValue]").val().replace(/ /g, '')) || 0;
然后,当你犯下这个错误时,它会(更)明显:

var-vehiclePrice=parseInt($(“输入[name=priceVehicle]”).val()。替换(//g',)|0;

var finalVehiclePriceValue=vehiclePrice;//我可以建议您熟悉开发工具,添加一些调试以缩小问题范围,然后如果您仍然无法找到解决方案,请提供一个简单的示例-如果我使用复选框、变量finalVehiclePriceValue和finalVehiclePriceP的值,您将获得更多帮助lusBuyBack是大于0的数字,但是如果我不使用复选框,变量finalHeclepriceValue总是等于0,finalHeclepricePlusBuyback是大于0的数字。我通过控制台进行了检查。Log这里有太多的非特定代码。从
 var vehiclePrice = parseInt($("input[name=priceVehicle]").val().replace(/ /g, '')) || 0;

 var finalVehiclePriceValue = vehiclePrice;  // <-- clearly shouldn't be `var ..`
 finalVehiclePricePlusBuyBack = vehiclePrice;