这很奇怪,我试图做一个简单的计算,但由于某种原因我无法从输入中获得价值,而且它只适用于特定的输入,而不是每个人。
这就是我试图获得价值的方式:
var Days = parseInt($('#days').val());
var DaysPayment = parseInt($('#days-payment').val());
但是它不起作用,尽管其他输入工作正常。
你可以在JSFiddle上看到这个:http://jsfiddle.net/jEU4L/
答案 0 :(得分:3)
您需要从点击处理程序中的字段中检索值。当你在空白时加载它们时,计算结果为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对象的变量以$
为前缀,变量名称应该是驼峰式的)。
答案 1 :(得分:0)
您需要更改功能:
$(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