计算发票中textarea条目的总和

时间:2014-10-22 17:40:45

标签: javascript html forms textarea invoice

我越来越接近这一点,我只是在第一次进入和第二次进入等方面遇到麻烦。

我的第一个条目显示在文本字段中,我的第二个条目也显示,但它们没有加在一起,它只显示我的第二个条目的总数,小计和税,而不是第一和第二项的总和。

文字区域如下所示

<textarea input type ="text" name = "textarea" id = "textarea" rows = "12" cols = "180" placeholder = "--Item Code--  --Item Name--   --Item Cost-- --Quantity--  --Subtotal--  --Tax--  --Total--"></textarea>

我的document.getElementById看起来像这样

    document.getElementById('textarea').value += ("\n")+("\n") + "--" + code + "--" + " " + " " + "--Item Name--" + "--" +  itemName + "--" + " " + " " + "--" + cost +"--" + " " + " " + "--" + quantity + "--" + " " + " " + "--" + subtotal + "--" + " " + " " + " " + "--" + tax + "--" + " " + " " + "--" + total + "--";

因此,每次点击“添加项目”按钮时,它都会继续将我的条目添加到文本字段中,但它不会添加所有条目的总和。

我不会发布我的整个代码,但我会给出一个片段给你一个想法

var subtotal = document.getElementById("subtotal").value;
                 subtotal = cost * quantity; // multiplying cost by quantity = subtotal

            var tax = document.getElementById("tax").value;
                 tax = subtotal * .07; // multiplying subtotal by tax(.7) = amount of tax owed

            var total = document.getElementById("total").value;
                 total = tax + subtotal; //adding tax to subtotal = total value



            document.getElementById("subtotal").value = subtotal;

            document.getElementById("tax").value = tax;

            document.getElementById("total").value = total; 

如何获得所有参赛作品的总和?如果你需要我发布更多代码,我会的。我只是希望保持这篇文章简明扼要。 。

编辑:

我正在制作发票,用户输入

下面显示了页面的布局

项目代码(用户输入信息的文本字段) 项目名称(用户输入信息的文本字段) 项目成本(用户输入信息的文本字段) 数量(用户输入信息的文本字段)

(这里是用户条目的大文本区域。当我点击为多个条目添加项目时,它显示用户输入的列表。所以: 第一次进入= 3 Ipod 200 1 第二次进入= 2 Tv 400 1)&lt; - 这是页面的中间(textarea)

小计(计算值) 税(计算值) 总计(计算值)

我可以为一个值计算这些罚款。它添加了textarea中的条目。但我的小计,税收和总计字段不会添加条目。 (第一次进入+第二次进入等)

所以当我把第二个值加到400时。它没有将它添加到第一个条目的小计,税和总数中,它会替换计算值部分中的第一个条目,并放入第二个条目好像第一个条目从未存在过。

但是,textarea显示多个用户条目。

1 个答案:

答案 0 :(得分:0)

var inputVal = $('textarea').val();
inputVal = inputVal.split('\n');

var total = 0;

for (var i = inputVal.length - 1; i >= 0; i--) {
    if(inputVal[i] === ''){
        continue;
    }
    var values = inputVal[i].split(' ');
    total += parseInt(values[0],10) * parseInt(values[2],10);

};