在计算期间获得NaN

时间:2013-04-15 14:24:18

标签: javascript nan

我正在尝试计算除了P& P之外的所选CD的总数。我正在使用的代码总共是NaN?

这里很困惑。我做错了什么?

function calculateTotal() {
    var Collection method = document.getElementById('collection').value +
    var select CDs = document.getElementById('selectCD').value;
    var total = document.getElementById('total');
    total.value = 'collection'(total) + 'selectCD'(total);
}

Here is a JSFiddle包含完整代码。

1 个答案:

答案 0 :(得分:1)

在你的小提琴中collectionselectCD是div(不是输入字段)包含输入字段。你做不到divElm.value

然后你的小提琴中的php代码通常能够输出多于一张cd,所以你需要将所选cd的总数添加到。

代码正常工作所需的最小更改是:

function calculateTotal(){
    var coll = document.getElementsByName('deliveryType'), 
         cds = document.getElementsByName('cd[]'),
       cdTot = 0,
           L = coll.length;
    while(L--){if(coll[L].checked){   //get shipping costs
        coll=Number(coll[L].getAttribute('title')); break; 
    }         }
    L=cds.length;
    while(L--){if(cds[L].checked){    //add total prices
        cdTot += Number(cds[L].getAttribute('title')); 
    }         }
    //  output total
    document.getElementById('total').value = coll + cdTot;
}

此外,您还需要设置一些更多触发器来运行calculateTotal(从运费和选定的CD中;这样,如果它们发生变化,总字段将更新为。) 根据您的小提琴,通过这些更改(以及一些其他修补程序)查看此 working fiddle ,这样您就可以在动作中看到它(计算)。

但我希望这是针对学校问题而不是网上商店。我会重新考虑我的策略,因为我认为你正在努力解决一个大安全问题。

祝你好运!