js发票中的小计和总计

时间:2014-04-20 00:57:17

标签: javascript jquery

我无法弄清楚如何做我想做的事情,所以我会以丑陋的方式做到这一点。

我一直试图用JS完成这个发票系统一周,我被卡住了。

我已经能够price per * quantity = subtotal工作,但只有一行,我需要为发票增加3行,但完全不知道如何合并其他3行,每行都有{ {1}},然后该列中的所有4个小计在TOTAL范围内汇总,我将在此处发布所有代码。

JavaScript的:

price per * quantity = subtotal

HTML:

var item = document.getElementById('item');
var a = document.getElementById('price');
var a = document.getElementById('qty');
item.onchange = function() {
    price.innerHTML = "$" + this.value;
    qty.value = 1; //Order 1 by default.
    add();
};
qty.onchange = function() {
    add();
}

function add() {
    var a = document.getElementById('item').value,
        b = document.getElementById('qty').value;

    document.getElementById('result').innerHTML = "$" + (a * b);
    document.getElementById('Total').innerHTML = "$" + (a * b) * 1.06;
}

我知道我的TOTAL跨度有误,但你明白了,工作版here

1 个答案:

答案 0 :(得分:0)

复制此代码

var item = document.getElementById('item');
var item1 = document.getElementById('item1');
var item2 = document.getElementById('item2');
var item3 = document.getElementById('item3');

item.onchange = function() {
  add();
};
item1.onchange = function() {
  add();
};
item2.onchange = function() {
  add();
};
item3.onchange = function() {
  add();
};
  function add() {
      var inputs = document.getElementsByTagName('input');
      var selects = document.getElementsByTagName('select');

      var total = 0;
      for (var i = 0; i < selects.length; i++) {
        var sum = 0;
        var price = (parseFloat(selects[i].value) )?parseFloat(selects[i].value):0;
        var qty = (parseFloat(inputs[i].value) )?parseFloat(inputs[i].value):0;
        sum += price * qty;
        total += sum * 1.06;
        if(i == 0){
          document.getElementById('result').innerHTML = "$" + sum;
        }else{

          document.getElementById('result'+i).innerHTML = "$" + sum;
        }             
      };

      document.getElementById('Total').innerHTML = "$" + total;
  }