如果条件为true,则在用户选中后立即取消选中selectBooleanCheckbox

时间:2014-06-03 09:31:03

标签: checkbox primefaces

原谅我可怜的英语;)

我有tabView,带有2个选项卡,可以选择由selectBooleanCheckbox呈现,所以我做了:

<p:selectBooleanCheckbox id="check" 
value="#{prestationComponent.prestation.condUnique}">
<p:ajax event="change" update="tabV"/>          
</p:selectBooleanCheckbox>

<p:tabView id="tabV" orientation="top">
<p:tab title="#{refMessage_fr.taxe_condunique_title}"
rendered="#{prestationComponent.prestation.condUnique}">
</p:tab>
<p:tab title="#{refMessage_fr.taxe_formullelist_title}"
rendered="#{!prestationComponent.prestation.condUnique}">
</p:tab>

这项工作非常完美

在其中一个拖曳标签中,我有一个列表,所以我想让这个标签激活,如果列表有多个元素,所以我将selectBooleanCheckbox更改为:

    <p:selectBooleanCheckbox id="check" 
    value="#{prestationComponent.prestation.condUnique}"
    onchange="if(#{prestationComponent.addPrestationFormulesList.size()>1}) {PF('messageDialogue').show();#{prestationComponent.prestation.setCondUnique(false)};}">
    <p:ajax event="change" update="tabV,check"/>            
    </p:selectBooleanCheckbox>

并且这与带有列表的选项卡一起工作,它的侦察器处于活动状态但是selectBooleanCheckbox保持选中状态

所以当我检查它时,我想selectBooleanCheckbox保持未选中状态(#{prestationComponent.addPrestulesFormulesList.size()&gt; 1})

谢谢。

========================================== EDIT ==== ================================

我找到了解决方案,我在托管bean中创建了一个测试条件的函数,如果条件为真,我将复选框的值设置为false,并在复选框的ajax事件的监听器中调用它

    <p:selectBooleanCheckbox id="check" 
    value="#{prestationComponent.prestation.condUnique}"
    onchange="if(#{prestationComponent.addPrestationFormulesList.size()>1}) PF('messageDialogue').show();">
    <p:ajax listener="#{prestationComponent.checkBoxListner()}" event="change" update="tabV,check"/>            
    </p:selectBooleanCheckbox>

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,我在托管bean中创建了一个测试条件的函数,如果条件为真,我将复选框的值设置为false,并在复选框的ajax事件的监听器中调用它

    <p:selectBooleanCheckbox id="check" 
    value="#{prestationComponent.prestation.condUnique}"
    onchange="if(#{prestationComponent.addPrestationFormulesList.size()>1}) PF('messageDialogue').show();">
    <p:ajax listener="#{prestationComponent.checkBoxListner()}" event="change" update="tabV,check"/>            
    </p:selectBooleanCheckbox>