【问题标题】:Calculate sum of textarea entries in an invoice计算发票中 textarea 条目的总和
【发布时间】:2014-10-22 17:40:45
【问题描述】:

我正在接近这个,我只是无法将我的第一个条目和第二个条目等加在一起。

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

文本区域是这样的

<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 + "--";

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

我不会发布我的整个代码,但我会给出一个 sn-p 来给你一个想法

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 )

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

我可以为一个值计算这些罚款。它在文本区域中添加条目。但我的小计、税收和总计字段不添加条目。 (第一个条目+第二个条目等)

所以当我在 400 处输入第二个值时。它不会将其添加到第一个条目的小计、税款和总计中,它会替换计算值部分中的第一个条目,并将第二个条目视为第一个条目从未存在过。

但是,文本区域显示了多个用户条目。

【问题讨论】:

  • 您正在使用单个文本区域来保存多个输入值?能不能做个jsbin?
  • 是的。我在底部有一个总计、小计和税收文本字段,但在页面中间有一个文本区域来显示用户的条目。我想我需要澄清一下我的帖子。
  • 我感觉你只需要用一个空格来分割字符串,比如... valueOfInput = docuemnt.getElementById('inputs').value; valueOfInput = valueOfInput.split(' ');然后在数组上运行一个 for 循环。如果您可以得到一个输入字段的工作箱,并尝试将其与示例值一起使用,那么编写它会很容易

标签: javascript html forms textarea invoice


【解决方案1】:
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);

};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    相关资源
    最近更新 更多