为什么我的javascript复选框不起作用?

时间:2015-10-05 02:10:42

标签: javascript

accessoryChoices = document.getElementsByName("accessories");
var accessoriesTotal;
function PressThis()
{

if (accessoryChoices[0].checked)
{
   accessoriesTotal = 56.45;


}

if (accessoryChoices[1].checked)
{
   accessoriesTotal += 115.35;

}

if (accessoryChoices[2].checked)
{
   accessoriesTotal += (7.25);

}
else 
{
   accessoriesTotal= 5.66;

}
document.getElementById('outputDiv').innerHTML= accessoriesTotal;
return;
}

我似乎无法显示正确的值。如果我按下所有按钮然后他们加起来,但是如果我按下第一个按钮就会变为0.如果我按下底部按钮他们会加起来,但是如果先按下最后一个按钮然后它会转到NaN。

1 个答案:

答案 0 :(得分:0)

您永远不会将accessoriesTotal设置为值,因此您可以使用数字添加undefined。

function PressThis() {
    var accessoriesTotal = 0;  //<--set it to zero

我不确定其他是你真正想要的。如果他们没有选择最后一个,它会将所有内容设置为5.66。这是你想要的还是+=

根据您的评论,您的代码应为

function PressThis() {
    var accessoriesTotal = 0;
    if (accessoryChoices[0].checked) {
        accessoriesTotal += 56.45;
    }
    if (accessoryChoices[1].checked) {
        accessoriesTotal += 115.35;
    }
    if (accessoryChoices[2].checked) {
        accessoriesTotal += 7.25;
    }

    if (accessoriesTotal===0) {  // or if (!accessoryChoices[0].checked && !accessoryChoices[1].checked && !accessoryChoices[2].checked) {
       accessoriesTotal= 5.66;
    }

    document.getElementById('outputDiv').innerHTML= accessoriesTotal;
    return;
}