对网格列求和的简单javascript循环

对网格列求和的简单javascript循环,javascript,loops,Javascript,Loops,我需要创建一个javascript循环,该循环将从表列的每一行(rowCount)中添加值,并输出总数(QT_BOX*rowCount=prodQty)。rowcount更新良好,但prodQuantity始终返回值50。我想我一定是忽略了什么,但似乎找不到 function updateCounters(){ var gridObject = document.BoxesGrid.getGridObject(); var rowCount = gridObject.getRow

我需要创建一个javascript循环,该循环将从表列的每一行(rowCount)中添加值,并输出总数(QT_BOX*rowCount=prodQty)。rowcount更新良好,但prodQuantity始终返回值50。我想我一定是忽略了什么,但似乎找不到

function updateCounters(){
    var gridObject = document.BoxesGrid.getGridObject();
    var rowCount = gridObject.getRowCount();
    for(var i=0; i <= rowCount; i++){
        var prodQty = gridObject.getCellValueByName(i, "QT_BOX");
        document.getElementById("QT_READ").value =prodQty;
        document.getElementById("QT_BOXES").value = rowCount;
    }       
}
函数updateCounters(){
var gridObject=document.BoxesGrid.getGridObject();
var rowCount=gridObject.getRowCount();

对于(var i=0;i在for循环中,您使用当前行的prodQty(或QT_框)更新“QT_READ”…但它从未添加到上一个金额中,因此您将始终拥有最后一行的prodQty

下面是它可能的样子:

function updateCounters(){
    var gridObject = document.BoxesGrid.getGridObject();
    var rowCount = gridObject.getRowCount();
    for(var i=0; i <= rowCount; i++){
        var prodQty = gridObject.getCellValueByName(i, "QT_BOX");
        var total = document.getElementById("QT_READ").value;
        document.getElementById("QT_READ").value = prodQty + total;
        document.getElementById("QT_BOXES").value = rowCount;
    }       
}
函数updateCounters(){
var gridObject=document.BoxesGrid.getGridObject();
var rowCount=gridObject.getRowCount();
对于(var i=0;i我不知道“BoxesGrid”是什么。但是通过您的代码,我看到您在循环中的每次重复中都将“QT_BOXES”设置为相同的值“rowCount”。所以我猜BoxesGrid是一个有50行的网格,这就是为什么您总是得到50行的原因

您应该对“for”子句中的每个值求和,然后在“for”子句外设置“QT_框”

函数updateCounters(){
var gridObject=document.BoxesGrid.getGridObject();
var rowCount=gridObject.getRowCount();
var-tot=0;

for(var i=0;i啊。这很有意义。不过我不确定如何添加这些内容。正如您可能知道的,我对javascript非常陌生。我假设我会更改这一行--var prodQty=gridObject.getCellValueByName(i,“QT\u框”);----我只是不太确定累计总值存储在哪里以及如何检索/显示它。您可能需要更改此行来执行此操作:var prodQty=gridObject.getCellValueByName(I,“QT_框”);var total=document.getElementById(“QT_读取”).value;document.getElementById(“QT_读取”).value=total+prodQty;感谢您的帮助。在您的示例中,tot返回一个包含循环中所有字段值的字符串。我需要做的是添加所有值,而不是显示它们。
function updateCounters(){
    var gridObject = document.BoxesGrid.getGridObject();
    var rowCount = gridObject.getRowCount();
    var tot = 0;
    for(var i=0; i <= rowCount; i++){
        var prodQty = gridObject.getCellValueByName(i, "QT_BOX");
        document.getElementById("QT_READ").value =prodQty;
        tot += prodQty;
    }       
    document.getElementById("QT_BOXES").value = tot;
}