Click here to Skip to main content
15,891,694 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
my two js function to add and delete table row below working fine, now i have a input box named subtotal in which when adding row add the subtotal of charges no problem, now what i want is to subtract the charges from stbtotal when row is deleted...please help...

JavaScript
function addRow(dataTable) {

var table = document.getElementById(dataTable);


var testgrid = document.billfrm.services.value;
var testname = document.billfrm.services.options[services.selectedIndex].text;
var charges = document.billfrm.chgs.value;
var discount = document.billfrm.dis.value;
var amount = document.billfrm.amt.value;

var stot = parseFloat(document.getElementById('subtotal').value);
var val = parseFloat(charges)+ parseFloat(stot);
document.getElementById('subtotal').value =  val;

var bdis =parseFloat(document.getElementById('billdisc').value);
var val1 =parseFloat(bdis) + parseFloat(discount);
document.getElementById('billdisc').value = val1;

var rowCount = table.rows.length;
var row = table.insertRow(rowCount);

var cell1 = row.insertCell(0);
var element1 = document.createElement("input");
element1.type = "checkbox";
cell1.appendChild(element1);


var cell2 = row.insertCell(1);
var element2 = document.createElement("label");
element2.innerHTML = testgrid;
cell2.appendChild(element2);


var cell3 = row.insertCell(2);
var element3 = document.createElement("label");
element3.innerHTML = testname;
cell3.appendChild(element3);

var cell4 = row.insertCell(3);
var element4 = document.createElement("label");
element4.innerHTML = charges;
cell4.appendChild(element4);

var cell5 = row.insertCell(4);
var element5 = document.createElement("label");
element5.innerHTML = discount;
cell5.appendChild(element5);

var cell6 = row.insertCell(5);
var element6 = document.createElement("label");
element6.innerHTML = amount;
cell6.appendChild(element6);


var cell7 = row.insertCell(6);
var element7 = document.createElement("input");
element7.type="hidden";
element7.style.width= "0px";
element7.name="testgrid[]";
element7.value = testgrid;
cell7.appendChild(element7);

var cell8 = row.insertCell(7);
var element8 = document.createElement("input");
element8.type="hidden";
element8.style.width= "0px";
element8.name="testname[]";
element8.value = testname;
cell8.appendChild(element8);

var cell9 = row.insertCell(8);
var element9 = document.createElement("input");
element9.type="hidden";
element9.style.width= "0px";
element9.name="charges[]";
element9.value = charges;
cell9.appendChild(element9);

var cell10 = row.insertCell(9);
var element10 = document.createElement("input");
element10.type="hidden";
element10.style.width= "0px";
element10.name="discount[]";
element10.value = discount;
cell10.appendChild(element10);

var cell11 = row.insertCell(10);
var element11 = document.createElement("input");
element11.type="hidden";
element11.style.width= "0px";
element11.name="amount[]";
element11.value = amount;
cell11.appendChild(element11);





}


function deleteRow(dataTable) {
    try {
        var table = document.getElementById(dataTable);
        var rowCount = table.rows.length;

        for (var i=0; i<rowCount; i++) {
            var row = table.rows[i];
	
            var chkbox = row.cells[0].childNodes[0];
            if (null != chkbox && true == chkbox.checked) {
                table.deleteRow(i);
                rowCount--;
                i--;
            }

        }
    }
    catch(e) {
        alert(e);
    }
}
Posted
Updated 23-Nov-15 14:12pm
v2

1 solution

You could try something like this
JavaScript
function deleteRow(dataTable) {
    try {
        var table = document.getElementById(dataTable);
        var rowCount = table.rows.length;

        var sumOfDeletedRpws = 0;
        for (var i=0; i < rowCount; i++) {
            var row = table.rows[i];
	
            var chkbox = row.cells[0].childNodes[0];
            if (null != chkbox && true == chkbox.checked) {

                // The line below is not syntactically correct, but you get the idea
                sumOfDeletedRpws += row[indexForWantedColumn];

                table.deleteRow(i);
                rowCount--;
                i--;
            }
        }

        // Add a line similar to this to subtract the values in the deleted rows
        stbtotal -= sumOfDeletedRpws;

    }
    catch(e) {
        alert(e);
    }
}
 
Share this answer
 
Comments
ramen79 24-Nov-15 6:31am    
thnkz for your answer, i have tried coding like below but it did not worked.


function deleteRow(dataTable) {
try {
var table = document.getElementById(dataTable);
var rowCount = table.rows.length;

var sumOfDeletedRpws = 20;
for (var i=0; i < rowCount; i++) {
var row = table.rows[i];

var chkbox = row.cells[0].childNodes[0];
if (null != chkbox && true == chkbox.checked) {

// The line below is not syntactically correct, but you get the idea
sumOfDeletedRpws += row[10];
alert(sumOfDeletedRpws);
table.deleteRow(i);
rowCount--;
i--;
}
}

// Add a line similar to this to subtract the values in the deleted rows
var subtot = document.getElementById("subtotal").value;
var nstot = subtot - sumOfDeletedRpws;
document.getElementById("subtotal").innerHTML = nstot;

}
catch(e) {
alert(e);
}
}
George Jonsson 24-Nov-15 17:31pm    
What is the problem?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900