这是我的代码:
<p:selectCheckboxMenu id="myselect" onchange="fixLable(this)" value="#{mybean.value}" >
<f:selectItems value="#{mybean.values}"/>
</p:selectCheckboxMenu>
我写了一个名为fixLable(this)的java脚本函数,它将在选择一个复选框时被调用。除了"select all"复选框外,在每次单击复选框时都会调用它。为什么?是否有一个单独的属性"选择全部"?
i read in:p:selectCheckboxMenu '未调用Ajax侦听器你可以使用toggleSelect ajax事件,然后使用onajaxstart或onsuccess等执行你的代码....但是我不想使用ajax,因为它比在事件上调用javascript要慢。
有什么建议吗?我很肯定你可以在"select all"复选框中添加一个事件监听器。
这可能有点误导,但实际上您可以使用<p:ajax>
元素来调用javascript函数,而无需向服务器发送任何ajax请求。<p:ajax>
具有onstart
属性,可以执行任何javascript代码。如果您的return false
来自该javascript块,则阻止请求处理,因此没有向服务器发送任何内容。
<p:ajax event="toggleSelect" onstart="fixLable(this); return false" />