选中p中的所有复选框:选择复选框菜单

Check all checkboxes in p:selectCheckboxMenu

本文关键字:复选框 选择 菜单 选中      更新时间:2023-09-26

父组件更新<p:selectCheckboxMenu>后,如何选中其中的每个复选框。它可能是JS/jQuery函数还是其他任何可能性。

我正试图用一个javascript函数来处理它,以检查<p:ajax>oncomplete 内部调用的每个复选框

<p:selectOneMenu>
    <p:ajax update="selectCheckboxMenu" 
            oncomplete="checkEveryBoxes()"/>
</p:selectOneMenu>
<p:selectCheckboxMenu id="selectCheckboxMenu" widgetVar="wvCheckBoxMenu">
</p:selectCheckboxMenu>

JS(伪代码):

function checkEveryBoxes(){
   for i=0 to y{
       check PF('wvCheckBoxMenu') for i value
   }
}

有办法做到这一点吗?

您可以使用PrimeFaces.widget.SelectCheckboxMenu.checkAll()函数:

PF('wvCheckBoxMenu').checkAll()

显然,在测试了PrimeFaces提供的功能后,不存在在面板关闭时检查复选框的场景(:visible的过滤器),因此如果菜单关闭,则不会得到预期的结果,因此需要在调用checkAll()之前调用show()

因此,合适且最简单的调用顺序是:

PF('wvCheckBoxMenu').show();
PF('wvCheckBoxMenu').checkAll();
PF('wvCheckBoxMenu').hide()

否则,您需要更改checkAll()函数本身。