我有一系列的两种方法,其中第二种方法必须使用第一种方法的返回值。因此,在我的代码中,如下所示,totalRoute
需要从totalInvoiced
(value3
)返回的值来计算其值,然后该值将显示在我正在构建的寄存器中。 totalRoute
将等于totalInvoiced
减去notCollected
,notCollectedLate
,expenditure1
和expenditure2
的总和。
我的问题是,当我插入notCollected
,notCollectedLate
,expenditure1
和expenditure2
的值时,totalRoute
的值为NaN
。我想那是因为我没有使用totalInvoiced
correctley的返回值,或者没有正确传递值。为什么我的函数没有获取或使用totalInvoiced
的值?
我的JS代码:
var A = {
today: document.getElementById("today"),
displayDate: function () {
var cD = new Date();
var day = cD.getDate();
var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"];
var year = cD.getFullYear();
var today1 = A.today;
today1.innerHTML = (day + "/" + months[cD.getMonth()] + "/" + year);
},
invoiced: document.getElementById("invoiced"),
lastInvoiced: document.getElementById("lastinvoiced"),
totalInvoiced: function () {
var value1 = parseFloat(A.invoiced.value);
var value2 = parseFloat(A.lastInvoiced.value);
if (isNaN(value1))
value1 = 0;
if (isNaN(value2))
value2 = 0;
var totalInvoiced1 = value1 + value2;
var value3 = document.getElementById("daytotal").value = totalInvoiced1 + "€";
console.log(value3);
return value3;
},
notCollected: document.getElementById("notcollected"),
notCollectedLate: document.getElementById("notcollectedlate"),
expenditure1: document.getElementById("expenditure1"),
expenditure2: document.getElementById("expenditure2"),
totalRoute: function () {
var value4 = parseFloat(A.notCollected.value);
var value5 = parseFloat(A.notCollectedLate.value);
var value6 = parseFloat(A.expenditure1.value);
var value7 = parseFloat(A.expenditure2.value);
if (isNaN(value4))
value4 = 0;
if (isNaN(value5))
value5 = 0;
if (isNaN(value6))
value6 = 0;
if (isNaN(value7))
value7 = 0;
var totalExp = (value4 + value5 + value6 + value7);
var value3 = A.totalInvoiced();
var tRoute = value3 - totalExp;
var value8 = document.getElementById("total").value = tRoute + "€";
console.log(value8);
return value8;
}
};
window.onload = A.totalInvoiced();
window.onload = A.displayDate();
A.invoiced.addEventListener("change", A.totalInvoiced, false);
A.lastInvoiced.addEventListener("change", A.totalInvoiced, false);
A.notCollected.addEventListener("change", A.totalRoute, false);
A.notCollectedLate.addEventListener("change", A.totalRoute, false);
A.expenditure1.addEventListener("change", A.totalRoute, false);
A.expenditure2.addEventListener("change", A.totalRoute, false);
答案 0 :(得分:3)
value3
包含欧元字符。只需将totalInvoiced的回报更改为totalInvoiced1
而不是value3
,即可获得我认为您正在寻找的功能。