我在Codeigniter做发票。我想计算金额,我可以做第一行(动态创建)。但第二行,它不工作。有人能帮我吗?我希望我的问题是直截了当的...
动态插入行的代码
function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length-1;
var row = table.insertRow(rowCount);
//Column 1
var cell1 = row.insertCell(0);
cell1.innerHTML = '<input type="text" name="item[]" id="item">'
//Column 2
var cell2 = row.insertCell(1);
cell2.innerHTML = '<input type="number" name="qty[]" id="qty" onkeyup="calc()">';
//Column 3
var cell3 = row.insertCell(2);
cell3.innerHTML = '<input type="number" name="rate[]" id="rate">';
//Column 4
var cell4 = row.insertCell(3);
cell4.innerHTML = '<input type="number" name="tax[]" id="tax">';
//Column 5
var cell5 = row.insertCell(4);
cell5.innerHTML = '<input type="number" name="amound[]" id="amound" readonly>';
//Column 6
var cell6 = row.insertCell(5);
cell6.innerHTML = '<input id="Button" type="button" value="Delete" class="delete-row btn btn-danger"/>';
}
$(document).on('click', '.delete-row', function() {
$(this).parents('tr').remove();
});
这是我的js计算代码
function calc(){
var textValue1 = document.getElementById('qty').value;
var textValue2 = document.getElementById('rate').value;
var textValue3 = document.getElementById('tax').value;
var mul = textValue1 * textValue2;
var tax = mul*(textValue3/100);
var result = +textValue2 + +tax;
document.getElementById('amound').value = result;
}
1条答案
按热度按时间gojuced71#
你的脚本的主要问题是你在你的输入元素上使用了ID而不是Classes。ID应该是唯一的,类可以重复x次。而且你把vanilla javascript和jQuery javascript结合起来了。
试着将你自己的代码和我创建的示例脚本进行比较。希望你能看到其中的区别,并将其添加到你自己的脚本中。
我的示例:https://jsfiddle.net/tnv73mL4/