2012-06-18 51 views
0

我有一個簡單的HTML表格/表格與一列(排名)有一個選擇菜單有2個選項:中等或高。我需要查找排列列中的單元格的所有行=「中等」,並計算同一行中另一個單元格的總數(平均小時數/周),並對單元格爲「高」的所有行重複此操作。這裏有一個JS小提琴顯示出一個樣品空單/表:在HTML表格中的飛行表格計算

http://jsfiddle.net/53zfb/4/

注意行數將不被事先固定的 - 有可能是1或更多。我有一個腳本根據小時/周和周/年字段的輸入計算平均小時/周,但無法讓它也計算兩個排名中的每一個的總和。

只是爲了澄清,如果形式具有這些選擇:

Row 1: Ranking = "Moderate" Average Hours/Week = 2 
Row 2: Ranking = "High" Average Hours/Week = 4 
Row 3: Ranking = "Moderate" Average Hours/Week = 6 
Row 4: Ranking = "High" Average Hours/Week = 8 

的總中度細胞應與*(6 + 2)和總高的細胞的值最終應用的值最終12(4 + *)。理想情況下,只要排名,小時/周或周/年的值在任何行中發生變化,都會發生這種情況。

下面是我想出到目前爲止,這不是爲我工作:

var moderateTotal = 0; 
     var highTotal = 0; 
     $("#activities").find("tr").each(function() { 
    var tr = $(this); 
    var level = tr.find("td:nth-child(2)").html(); 
    var value = tr.find("td:nth-child(5)").html(); 

    switch(level) 
    { 
     case "Moderate": 
      moderateTotal += value*1; 
     break; 
     case "High": 
      highTotal += value*1; 
     break; 
    } 
}); 

$("#moderateTotal").val(moderateTotal); 
    $("#highTotal").val(highTotal); 

    }); 
+0

您在表單中多次重複使用「風險」的ID。 ID必須是唯一的。如果您將每週的小時數輸入元素指定爲不同的類,它也會通過jQuery更容易地進行計算。 – j08691

回答

0

考慮<input><select>標籤內改變你的活動,一個onChange=MyFunc(),然後調用從你的函數。該函數只需循環通過您的控件(由您的JSFiddle已經增加了ID)。 If語句將通過控制循環,找到所有Risk#="Moderate"風險#是每個風險選擇組的唯一ID(與JSFiddle不同),並將相應的值添加到正在運行的總和中。

你沒有問過任何具體的問題,所以我認爲你只是需要一些幫助,這個問題的具體代碼並不難。你用JSFiddle展示了一些很好的編碼知識。

可能的Javascript:

function MyOnChangeEvent() { 
    var highTotal, modTotal; 
    var rowCount, i; 
    highTotal=0; 
    modTotal=0; 

    rowCount=5; //However many rows you have 

    for (i=1; i<rowCount+1; i++) { 
     switch (document.getElementById("C"+i)) { 
     case "Moderate": modTotal++; 
     case "High": highTotal++; 
     } 
    } 

    document.getElementById("HighTotal") = highTotal; 
    document.getElementById("ModerateTotal") = modTotal; 
} 

有這個可能的調試,因爲我沒有測試它,但這個想法是存在的。通過document.getElementById(<ID OF TEXT BOXES>)獲取數值並執行計算。

+0

我已經添加了一些我正在使用的代碼,這不起作用 - 如果你可以看看這個,並提供一些建議,請欣賞它。非常感謝 – user982124

+0

它會拋出任何錯誤嗎?給出任何結果,甚至意外/錯誤的結果? – StuckAtWork

+0

不,我什麼也得不到 - 總有一天它將總數設置爲「0」,所以發生了一些事情。我已經更新了JSFiddle以顯示唯一的ID。 – user982124