Jquery 从输入中获取值,结果为NaN
这很奇怪,我试图做一个简单的计算,但由于某种原因,我无法从输入中获得值,而且它只对特定的输入有效,而不是对所有人 这就是我试图获得价值的方式:Jquery 从输入中获取值,结果为NaN,jquery,Jquery,这很奇怪,我试图做一个简单的计算,但由于某种原因,我无法从输入中获得值,而且它只对特定的输入有效,而不是对所有人 这就是我试图获得价值的方式: var Days = parseInt($('#days').val()); var DaysPayment = parseInt($('#days-payment').val()); 但它不起作用,尽管其他输入工作正常 您可以在JSFIDLE上看到这一点:您需要从单击处理程序中的那些字段中检索值。当它们为空时,您正在加载它们,因此计算会产生NaN。此
var Days = parseInt($('#days').val());
var DaysPayment = parseInt($('#days-payment').val());
但它不起作用,尽管其他输入工作正常
您可以在JSFIDLE上看到这一点:您需要从单击处理程序中的那些字段中检索值。当它们为空时,您正在加载它们,因此计算会产生
NaN
。此外,还应该在parseInt
调用中包含基数。试试这个:
$(document).ready(function () {
var $execute = $('#execute');
var $total = $('#total');
var $totalNDS = $('#total-nds');
$execute.on('click', function () {
var payment = parseInt($('#payment').val().replace(/ /g, ""), 10);
var nds = parseInt($('#nds').val(), 10);
var days = parseInt($('#days').val(), 10);
var daysPayment = parseInt($('#days-payment').val(), 10);
var t1 = payment / 100;
var t2 = t1 * nds;
var t3 = payment - t2;
var t4 = t3 / days;
var t5 = t4 * daysPayment;
$total.val(t5);
});
});
我还更改了变量名,以使用常见的JS和jQuery约定(即,包含jQuery对象的变量的前缀为
$
,变量名应采用驼峰大小写) 您需要更改您的功能:
$(document).ready(function(){
var Payment = parseInt($('#payment').val().replace(/ /g,""));
var Execute = $('#execute');
var Total = $('#total');
var TotalNDS = $('#total-nds');
Execute.on('click',function(){
var NDS = 0
var Days = 0
var DaysPayment= 0
if($('#nds') > 0)
NDS = parseInt($('#nds').val());
if($('#days') > 0)
Days = parseInt($('#days').val());
if($('#days-payment') > 0)
DaysPayment = parseInt($('#days-payment').val());
console.log(Days+' '+DaysPayment);
var t1 = Payment/100;
console.log(t1);
var t2 = t1 * NDS;
console.log(t2);
var t3 = Payment - t2;
console.log(t3);
var t4 = t3 / Days;
console.log(t4);
var t5 = t4 * DaysPayment;
console.log(t5);
Total.val(t5);
});
});
因为您没有以天或月变量中的天为单位获得默认值,所以您得到的是NaN我认为可能是您的替换函数的bcoz尝试此
replace(/\r?\n/g')