Pobierz widgetVar z JavaScript lub zaznacz / odznacz wszystkie pozostałe pola wyboru PrimeFaces
Na stronie mam kilka pól wyboru PrimeFaces. Jeśli klikniesz pole wyboru master, wszystkie pozostałe pola wyboru powinny być zaznaczone / odznaczone. Przy zwykłych polach wyboru HTML byłby to łatwy problem. Ale ponieważ PrimeFaces nie wyświetla samego pola wyboru, ale obraz, następujący kod JavaScript nie działa:
<script type="text/javascript">
$(document).ready(function() {
var masterCheckbox = $(".ui-chkbox.master :checkbox");
var slaveCheckboxes = $(".ui-chkbox:not(.master) :checkbox");
updateMaster();
masterCheckbox.change(updateSlaves);
slaveCheckboxes.change(updateMaster);
function updateMaster() {
var allSlavesChecked = true;
slaveCheckboxes.each(function() {
if (!$(this).is(':checked')) {
allSlavesChecked = false;
}
});
masterCheckbox.attr("checked", allSlavesChecked);
}
function updateSlaves() {
var masterChecked = masterCheckbox.is(":checked");
slaveCheckboxes.each(function() {
$(this).attr("checked", masterChecked);
});
}
});
</script>
Wiem, że mogę użyć widgetVar PrimeFaces do przełączania pól wyboru, ale nie wiem, jak uzyskać obiekty widgetu PrimeFaces z JavaScript. Myślę, że RichFaces dodaje właściwość component do elementu DOM, ale PrimeFaces tego nie robi. Czy ktoś zna rozwiązanie tego problemu?