В JSF Как я могу понять несколько флажков, все ли они отмечены или нет?

Как вы поняли из заголовка выше, у меня есть дататаблица и чекбоксы в каждой строке.

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

Кстати, я должен сделать это без использования метода установки или вспомогательного компонента. Могу ли я выполнить это с помощью jquery или jsfunction, richfaces и т. д.?

В результате я хочу узнать, как я могу отключить кнопку в тот момент, когда все флажки не выбраны?

Чтобы прояснить ситуацию, вот мой код ниже;

<h:selectBooleanCheckbox id="selectionCheck" 
    onclick="document.getElementById('form1:button1').disabled=false" 
    value="#{_apiV2Product.selectValue}" > 
</h:selectBooleanCheckbox>

Будем признательны за любую помощь, Большое спасибо, Барис


person javatar    schedule 26.05.2010    source источник


Ответы (1)


Вы можете сделать это с помощью следующего фрагмента jQuery:

$('[id$=selectionCheck]').click(function() {
    $('[id$=button1]').attr('disabled', $('[id$=selectionCheck]:checked').length == 0);
});

Это назначает функцию onclick каждому флажку, который отключает кнопку, когда ни один флажок не отмечен.

Селектор [id$=xxx] выбирает элементы с идентификатором клиента оканчивающимся с заданным значением. Это может быть полезно в JSF/RichFaces, поскольку перед идентификатором клиента ставится идентификатор (и) родительского элемента UINamingContainer (например, h:form, h:dataTable, f:subview и т. д.).

person BalusC    schedule 26.05.2010