我一直试图添加下面代码中显示的两个不同的变量,但无论我做什么,结果都是Nan,我在这里做错了吗?我试过玩了一段时间,但我发现我的代码没有任何问题!
<script type="text/javascript">
function showEstimate() {
switch (document.getElementById("cboCar").value) {
case "A":
document.getElementById("imgCar").src= "images/Accord.jpg";
carPrice = document.getElementById("txtEstPr").value;
break;
case "C":
document.getElementById("imgCar").src= "images/Civic.jpg";
carPrice = document.getElementById("txtEstPr").value;
break;
} // end of switch block.
//here, the UI has done processing cars pics
//display the price for cars
document.getElementById("txtEstPr").value= "$" + carPrice;
// end of the function named
{
var vchkSt= (300.99).toFixed();
var vchkLe= (750.99).toFixed();
var vchkGps= (1600.00).toFixed();
var tTotal = 0;
carPrice = Number(document.getElementById("txtBasePr").value);
if (document.getElementById("chkSt").checked)
tTotal += parseFloat(carPrice) + parseFloat(vchkSt);
if (document.getElementById("chkLe").checked )
tTotal += parseFloat(carPrice) + parseFloat(vchkLe);
if (document.getElementById("chkGps").checked ==true )
tTotal += parseFloat(carPrice) + parseFloat(vchkGps);
//displaying the total
document.getElementById("txtEstPr").value = "$" + tTotal;
}
} // end of function showEstimate
</script>
答案 0 :(得分:3)
您没有调用toFixed
功能,而是将功能分配给chkSt
,chkLe
和chkGps
:
var chkSt= (300.99).toFixed;
var chkLe= (750.99).toFixed;
var chkGps= (1600.00).toFixed;
相反它应该是:
var chkSt= (300.99).toFixed();
var chkLe= (750.99).toFixed();
var chkGps= (1600.00).toFixed();
另外
Number(carPrice = document.getElementById("txtEstPr").value);
没有任何意义。无需在Number
函数中包含赋值。看起来您正在尝试将值作为数字分配给carPrice
,这可以简单地完成:
carPrice = +document.getElementById("txtEstPr").value;
或
carPrice = Number(document.getElementById("txtEstPr").value);
此外,您将为每个后续复选框重新分配tTotal
。您应该使用:
if (document.getElementById("chkSt").checked) {
tTotal += parseFloat(carPrice) + parseFloat(chkSt);
// ^
}
使用var tTotal = 0
初始化变量。