Фильтр по атрибуту [документы] .Я думаю, что ваш код на самом деле не правильный, вы привязываете обработчик событий только к элементам, которые уже выбраны.Если вы хотите связать его со всеми флажками этой группы, выберите все из них:
var $checkboxes = $("input[name='selectArticle[]']");
function countChecked() {
var n = $checkboxes.filter(":checked").length;
$("div").text(n + (n <= 1 ? " is" : " are") + " checked!");
}
$checkboxes.change(countChecked).change();
Кэширование элементов ($checkboxes
) лучше, чем их поиск при каждом вызове обработчика.
Если вы действительно хотите привязать обработчик только к выбранным, привязайте обработчик события следующим образом:
$("input[name='selectArticle[]']:checked").change(countChecked).change();
Лучше привязать обработчик события к событию change
(выборытакже можно изменить с помощью клавиатуры).
Вы также видите, что вместо вызова countChecked
, оно вызывает событие change
вручную, вызывая change
после привязки обработчика события.