<p:selectcheckboxmenu中的onchange事件=“”not =“”fired =“”when =“”choose =“”all =“”

时间:2015-05-20 16:29:30

标签: javascript jsf primefaces

=“”

这是我的代码:

<p:selectCheckboxMenu  id="myselect" onchange="fixLable(this)" value="#{mybean.value}" >
        <f:selectItems  value="#{mybean.values}"/>
</p:selectCheckboxMenu>

我编写了一个名为fixLable(this)的java脚本函数,在选择其中一个复选框时将调用该函数。 每次点击复选框都会调用它,除了&#34;选择全部&#34;复选框。为什么? 是否有一个单独的属性&#34;选择所有&#34;?

我读到了:p:selectCheckboxMenu 'Select all' ajax listener not invoked 您可以使用 toggleSelect ajax事件,然后使用 onajaxstart onsuccess 等执行您的代码.... 但我不想使用ajax,因为它比在事件上调用javascript更慢。

有什么建议吗?我是积极的,你可以添加一个eventlistener到&#34;选择所有&#34;复选框。

1 个答案:

答案 0 :(得分:3)

它可能没有什么误导性,但您实际上可以使用<p:ajax>元素来调用javascript函数,而无需向服务器发送任何ajax请求。 <p:ajax>具有onstart属性,可以执行任何javascript代码。如果您的return false来自该javascript块,则会阻止处理请求,因此不会向服务器发送任何内容。

<p:ajax event="toggleSelect" onstart="fixLable(this); return false" />