NaN 出现在计算中
NaN shows up in calculations
我卡在这个函数里了multiplyUsed()
。
我想用两个复选框的条件来总结所有的框。
最后,如果我选中复选框 Quality
,结果会显示 NaN
。为什么会这样?这些值填写在 Sta
和 Sta+
.
框中
function sumUpUsedCar() {
var standartUsedLoan = Number ( document.getElementById("standartUsed").value);
var standartPlusUsed = Number ( document.getElementById("standartPlusUsed").value);
var prUsedCompleted = document.getElementById("prUsedCompleted");
var prUsedDoesntCompleted = document.getElementById("prUsedDoesntCompleted");
if (prUsedCompleted.checked) {
document.getElementById("sumUsedVehicle").innerHTML = (standartUsedLoan * Number(0.04)) + (standartPlusUsed * Number(0.065));
} else {
document.getElementById("sumUsedVehicle").innerHTML = (standartUsedLoan * Number(0.03)) + (standartPlusUsed * Number(0.045));
}
}
function multiplyUsed() {
var qualityCompleted = document.getElementById("qualityCompleted");
var sumUpUsedC = Number (document.getElementById("sumUsedVehicle");
if (qualityCompleted.checked) {
document.getElementById("sumUsedVehicle").innerHTML = (sumUpUsedC * Number(0.03));
}
}
<form>
<label class="showLabel5" for="usedCar"><b>Sta</b></label>
<input class="standartUsed" type="number" min="100000" max="100000000" id="standartUsed" onchange="sumUpUsedCar()">
<label class="showLabel6" for="usedCar2"><b>Sta + </b></label>
<input class="standartPlusUsed" type="number" min="100000" max="100000000" id="standartPlusUsed" onchange="sumUpUsedCar()">
</form>
<div class="usedVehicle2"><b>Additional </b></div>
<label class="container2" for="yes"><b> Yes</b>
<input type="checkbox" class="input2" name="yes" id="prUsedCompleted" onclick="prUsedSelection(), sumUpUsedCar()">
</label>
<label class="container2" for="no"><b> No</b>
<input type="checkbox" class="input2" name="no" id="prUsedDoesntCompleted" onclick="prUsedSelection()">
</label>
<div class="mainbox5">
<div class="quality"><b> Quality</b></div>
<label class="container3" for="yes"><b> Yes</b>
<input type="checkbox" class="input3" name="yes" id="qualityCompleted" onclick="multiplyUsed()">
</label>
<label class="container3" for="no"><b> No</b>
<input type="checkbox" class="input3" name="no" id="qualityDoesntCompleted">
</label>
<div class="overall"><b>overall:</b></div>
<table class="tableOverall">
<tr>
<td></td>
<td id="sumUsedVehicle"></td>
</table>
在这一行
document.getElementById("sumUsedVehicle").innerHTML = (sumUpUsedCar * Number(0.03));
sumUpUsedCar
是一个函数。您可能想要在那里进行函数调用 sumUpUsedCar()
。将函数转换为数值时,根据乘法需要,其值为NaN
.
编辑后,函数 multiplyUsed
中的表达式 document.getElementById("sumUsedVehicle").value
为 undefined
,因为 DOM 元素没有 value
属性。使用
var sumUpUsedC = Number (document.getElementById("sumUsedVehicle").innerHTML);
相反。
我卡在这个函数里了multiplyUsed()
。
我想用两个复选框的条件来总结所有的框。
最后,如果我选中复选框 Quality
,结果会显示 NaN
。为什么会这样?这些值填写在 Sta
和 Sta+
.
function sumUpUsedCar() {
var standartUsedLoan = Number ( document.getElementById("standartUsed").value);
var standartPlusUsed = Number ( document.getElementById("standartPlusUsed").value);
var prUsedCompleted = document.getElementById("prUsedCompleted");
var prUsedDoesntCompleted = document.getElementById("prUsedDoesntCompleted");
if (prUsedCompleted.checked) {
document.getElementById("sumUsedVehicle").innerHTML = (standartUsedLoan * Number(0.04)) + (standartPlusUsed * Number(0.065));
} else {
document.getElementById("sumUsedVehicle").innerHTML = (standartUsedLoan * Number(0.03)) + (standartPlusUsed * Number(0.045));
}
}
function multiplyUsed() {
var qualityCompleted = document.getElementById("qualityCompleted");
var sumUpUsedC = Number (document.getElementById("sumUsedVehicle");
if (qualityCompleted.checked) {
document.getElementById("sumUsedVehicle").innerHTML = (sumUpUsedC * Number(0.03));
}
}
<form>
<label class="showLabel5" for="usedCar"><b>Sta</b></label>
<input class="standartUsed" type="number" min="100000" max="100000000" id="standartUsed" onchange="sumUpUsedCar()">
<label class="showLabel6" for="usedCar2"><b>Sta + </b></label>
<input class="standartPlusUsed" type="number" min="100000" max="100000000" id="standartPlusUsed" onchange="sumUpUsedCar()">
</form>
<div class="usedVehicle2"><b>Additional </b></div>
<label class="container2" for="yes"><b> Yes</b>
<input type="checkbox" class="input2" name="yes" id="prUsedCompleted" onclick="prUsedSelection(), sumUpUsedCar()">
</label>
<label class="container2" for="no"><b> No</b>
<input type="checkbox" class="input2" name="no" id="prUsedDoesntCompleted" onclick="prUsedSelection()">
</label>
<div class="mainbox5">
<div class="quality"><b> Quality</b></div>
<label class="container3" for="yes"><b> Yes</b>
<input type="checkbox" class="input3" name="yes" id="qualityCompleted" onclick="multiplyUsed()">
</label>
<label class="container3" for="no"><b> No</b>
<input type="checkbox" class="input3" name="no" id="qualityDoesntCompleted">
</label>
<div class="overall"><b>overall:</b></div>
<table class="tableOverall">
<tr>
<td></td>
<td id="sumUsedVehicle"></td>
</table>
在这一行
document.getElementById("sumUsedVehicle").innerHTML = (sumUpUsedCar * Number(0.03));
sumUpUsedCar
是一个函数。您可能想要在那里进行函数调用 sumUpUsedCar()
。将函数转换为数值时,根据乘法需要,其值为NaN
.
编辑后,函数 multiplyUsed
中的表达式 document.getElementById("sumUsedVehicle").value
为 undefined
,因为 DOM 元素没有 value
属性。使用
var sumUpUsedC = Number (document.getElementById("sumUsedVehicle").innerHTML);
相反。