2014-06-29 75 views
1

我有一個帶有表格的頁面。表格中的兩列是複選框列。每個人都有不同的Id值。我試圖通過jQuery來計算表格中檢查其中一個複選框列(Id值爲「InChecklist」)的行數。我的JS函數如下所示:jQuery - 使用給定的Id值計算已選複選框的數量

function UpdateCount() { 
    var totalRows = $('#checklistTable tbody tr:visible').length; 
    var totalSeen = $(":input#InChecklist[checked='checked']").length; 
    $("#rowCount").text(totalRows.toString() + " species/" + totalSeen + " seen") 
} 

總的行數很好。但是,我不能讓語法正確,因爲我無法正確計數(值始終爲零)。如果我刪除'#InChecklist',我得到的值大於零,但在這種情況下,它將計算在兩個複選框列中檢查的總數,而不是具有「InChecklist」標識的總數。

如果有幫助,那麼呈現複選框的HTML部分看起來如下所示。這是MVC5。

 <td> 
      <input id="InChecklist" name="item.HasBeenSeenChecklist" type="checkbox" value="true" /><input name="item.HasBeenSeenChecklist" type="hidden" value="false" /> 
     </td> 
     <td> 
      <input id="InLifelist" name="item.HasBeenSeenLifelist" type="checkbox" value="true" /><input name="item.HasBeenSeenLifelist" type="hidden" value="false" /> 
     </td> 
+0

根據您的選擇,'totalSeen'將是1或基於其檢查屬性0 ,不超過... –

+0

@DavidThomas - 我更新了我的帖子。這有幫助嗎? –

+0

@DavidThomas - 我現在正在顯示呈現的HTML。應該首先做到這一點 - 抱歉。 –

回答

3

在之前指定ID:輸入這樣

var totalSeen = $("#InChecklist:input[checked='checked']").length; 

編輯

var totalSeen = $("input#InChecklist:checked").length; 
+0

那沒有用 –

+0

是的,現在爲時尚早。應該是$(「input#InChecklist:checked」)。長度 – Johan

+0

Bingo!這樣可行。謝謝。 –

0

編輯:

你可以試試:

var totalSeen = $("#InChecklist input:checked").length; 

選擇所有的#InChecklist

孩子投入或者你可以使用這個:

var totalSeen=0; 
$("#InChecklist input").each(function(){ 
    if($(this).is('checked')){ 
     totalSeen++; 
    } 
}); 
+0

生成一個'undefined' - (473種/ undefined看到) –

+0

再次檢查代碼,編輯它 –