选中p:selectCheckboxMenu中的所有复选框

时间:2014-09-30 14:34:17

标签: javascript primefaces

在父组件更新后,如何检查<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
   }
}

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以使用PrimeFaces.widget.SelectCheckboxMenu.checkAll()功能:

PF('wvCheckBoxMenu').checkAll()

显然在测试PrimeFaces提供的功能后,在面板关闭时检查复选框的方案不存在(:visible的过滤器),因此如果菜单关闭,您将无法获得预期结果,因此您需要在致电show()之前致电checkAll()

所以适当和最简单的调用顺序是:

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

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