3

我正在制作一个基本的订单表格,我想看看我是否可以从 stratch 构建它。

我有一个表格,它由一个包含 12 个项目的表格和项目数量的文本输入字段组成。我想做的是让代码在表单中运行以检查已输入的任何数量,然后将这些值与数组中的价格相关联。

到目前为止,我有数组:

var juicePrice = new Array();
juicePrice["citrusZing"]=20.00;
juicePrice["strawberrySmooth"]=22.00;
juicePrice["carrotSpin"]=21.50;
juicePrice["Tropical"]=20.75;
...

以及一种遍历表单的方法:

calculateTotal()    
{   
var juiceForm = document.forms["juiceform"];

    //Get a reference to the juice the user Chooses name=selectedJuiceQty":
    var selectedJuiceQty = juiceForm.elements["selectedJuiceQty"];

    for(var i = 0; i < selectedJuiceQty.length; i++);

但我不太确定如何连接表格中的信息来计算总数。谁能指出我正确的方向?是这样的吗?

for(var i = 0; i < selectedJuiceQty.length; i++){
    var juiceTotal = 0;

    if(selectedJuiceQty[i]>0) {
        juiceTotal += juicePrice[selectedJuiceQty[i].value]*selectedJuiceQty;
        //If we get a match then we break out of this loop
        break;
    }
    return total;
}

是否可以为每个字段使用相同的名称标签,还是应该只citrusZingQty = parseInt(document.getElementById("citrusZing").value);为每个项目使用?然后我必须列出所有项目,这似乎不是一个非常优雅的方式。如果选择多个项目会发生什么?

任何人都可以给我指出正确方向的任何帮助都会很棒。

4

1 回答 1

1

所以你可以做你想做的事。迈克尔在评论中指出了这一点,但它可能被忽视了。

var myPrices = new Object();
myPrices['eggs'] = 1.50;
myPrices['bread'] = 1.00;
// ...

然后您可以遍历您的表单字段并检查您的“myPrices”对象。

编辑

要在评论中回答您的问题 - 我不会对所有输入字段使用相同的名称。它确实使循环表单更容易。但是,在我看来,使用输入标签的 id/class 并不是一个好的解决方案。HTML id/class 用于 CSS/Javascript 操作,并使用它来识别输入代表的水果对于从事该项目的其他开发人员来说并不明显(我意识到这对您来说可能是一个小项目,但最好不要开始任何项目陋习)。我会在它代表的果汁/饮料之后命名每个输入。

于 2012-07-15T00:29:06.563 回答