我在頁面上有幾個PrimeFaces複選框。如果您單擊主複選框,則應該選中/取消選中所有其他複選框。用普通的HTML複選框,這將是一個簡單的問題。但因爲PrimeFaces不顯示覆選框本身,而是圖像,下面的JavaScript代碼不起作用:使用JavaScript獲取小部件花率或選中/取消選中所有其他PrimeFaces複選框
<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>
我知道,我可以使用PrimeFaces widgetVar切換複選框,但我不知道該怎麼使用JavaScript獲取PrimeFaces小部件對象。我認爲RichFaces會將組件屬性添加到DOM元素,但PrimeFaces不會。有人知道這個問題的解決方案嗎?
是的,最後我按照您的建議做了它。在我有想法迭代所有窗口屬性之前,請查找widget_ *屬性並檢查它們是否屬於複選框。 – 2012-07-12 06:27:53