Подсчет отмеченных флажков - PullRequest
3 голосов
/ 14 марта 2012

У меня проблема с подсчетом отмеченных флажков в jQuery, который идет вразрез с каждым примером, который я смог найти. Работает следующий код:

var checked_boxes = $('input:checkbox:checked').length // Returns 1 or 2 etc.

Однако я хотел бы изменить это, чтобы подсчитать количество флажков определенного класса, скажем, my_class. Я пробовал следующее:

var checked_boxes = $('input.my_class:checked').length // Always 0
var checked_boxes = $('input.my_class:checkbox:checked').length // Always 0
var checked_boxes = $('input[type=checkbox].my_class:checked').length // 0 also

То же самое с несколькими другими синтаксисами / перестановками, которые я пробовал.

Для некоторого фона эти флажки находятся в таблице в формате td и по сути выглядят так:

<input type="checkbox" id="cb1" class="some_class_for_display_style my_class" value="1" />Blah

Есть идеи, что мне здесь не хватает?

EDIT:

Обнаружил проблему: это был неправильный класс. Я добавил ответ на этот счет.

Ответы [ 4 ]

13 голосов
/ 14 марта 2012

Удалить знак $ в селекторе.

$('input.my_class:checked').length - Количество флажков, которые отмечены

$('input.my_class').length - Количество всех флажков с классом my_class

1 голос
/ 14 марта 2012

Самый быстрый Rubber Duck ответ когда-либо !!

Сразу после публикации я вернулся к просмотру своего кода и к своему ужасу понял, что применил класс к тд, а не кcheck_box_tag (я использую Rails) .. переместил класс в check_box_tag и теперь он работает.

Спасибо всем!

1 голос
/ 14 марта 2012

Это то, что вы ищете:

Будет хорошо, если вы сможете предоставить работающий JSFiddle, но надеюсь, что ссылка ниже поможет вам.

Пример: (Вы ищете смесь этих 2)

http://jsfiddle.net/mtYtW/30/ А ТАКЖЕ http://jsfiddle.net/karim79/LUtJF/1/

Несколько хороших ответов здесь:

Jquery, как считать, отмеченные и отключить флажки

Надеюсь, это поможет, ура

0 голосов
/ 14 марта 2012

Если $input является переменной PHP, вам нужно экранировать строку JS, чтобы использовать переменную:

var checked_boxes = $('<?php echo $input ?>'.my_class:checked).length;

Если это переменная JS, то же самое:

var checked_boxes = $('input.<?php echo $my_class; ?>:checked').length;

И если это не переменная, вам просто нужно удалить начальный $ из селектора:

var checked_boxes = $('input.my_class:checked').length;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...