2014-06-29 5 views
1

У меня есть страница со столом на ней. Два столбца в таблице - столбцы флажков. Каждый из них имеет другое значение Id. Я пытаюсь подсчитать через jQuery количество строк в таблице, где отмечен один из столбцов флажка (который имеет значение Id для «InChecklist»). Моя функция JS выглядит следующим образом:jQuery - подсчитать количество отмеченных флажков с заданным значением идентификатора

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

Укажите идентификатор перед входом: как этот

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

Редактировать

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

Это не сработало –

+0

Да, это слишком рано. Должно быть $ ("input # InChecklist: checked"). Length – Johan

+0

Bingo! Это работает. Спасибо. –

0

Отредактировано:

вы можете попробовать:

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

выбирает все дети входы #InChecklist

в качестве альтернативы вы можете использовать это:

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

Это генерирует «неопределенный» - (473 вида/не определено) –

+0

еще раз проверьте код, отредактируйте его –

Смежные вопросы