我无法弄清楚如何做我想做的事情,所以我会以丑陋的方式做到这一点。
我一直试图用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
答案 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;
}