Вам необходимо назначить h:selectManyCheckbox
и любые родительские компоненты UINamingContainer
(например, h:form
, h:dataTable
и т. Д.) уникальный идентификатор. Таким образом, JSF сгенерирует идентификаторы клиента соответственно, иначе он автоматически сгенерирует непредсказуемые идентификаторы клиента, которые вы не можете использовать в JS. Чтобы узнать, как они были сгенерированы, просто щелкните правой кнопкой мыши страницу в веб-браузере и выберите Просмотр источника .
Однако есть одно маленькое предупреждение: JSF использует двоеточие :
в качестве разделителя UINamingContainer
, например. formid:checkboxid
. Двоеточие - это недопустимый символ в CSS. В любом случае, чтобы выбрать их в CSS / jQuery, вам нужно экранировать их обратной косой чертой. Например. formid\:checkboxid
.
Кроме того, h:dataTable
добавит еще один идентификатор к идентификатору клиента после идентифицируемого идентификатора, а именно индекс строки, например, formid:datatableid:0:checkboxid
. Но это должно выглядеть достаточно очевидно, когда вы видите шаблоны в сгенерированном выводе HTML.
h:selectManyCheckbox
в свою очередь присваивает каждому флажку уникальный идентификатор клиента и одно и то же имя клиента. Опять же, просто проверьте сгенерированный вывод HTML, чтобы увидеть шаблоны.
В jQuery вы также можете использовать jQuery.filter()
, чтобы отфильтровать интересующие вас флажки на основе последней части их идентификатора / имени клиента.