如何在检查p:selectBooleanCheckbox时打开确认对话框

时间:2017-01-02 13:03:34

标签: javascript jsf primefaces

我有一个p:selectBooleanCheckbox,显示一个确认操作的对话框:

<p:selectBooleanCheckbox id="isModel" value="#{managedBean.isModel}" >
    <p:ajax event="change" oncomplete="PF('confirmDialog').show()" />
</p:selectBooleanCheckbox>

更改p:selectBooleanCheckboxconfirmDialog显示:

<p:confirmDialog id="confirmDialog" widgetVar="confirmDialog" closable="false" width="50%" >        
    <p:commandButton value="oui" ..... />
    <p:commandButton value = "non" ...../> 
</p:confirmDialog>

我只有在检查javascript时才能使用p:selectBooleanCheckbox打开此对话框,当我取消选中它时会触发其他操作

1 个答案:

答案 0 :(得分:1)

在显示对话框之前,只需检查值:

<p:selectBooleanCheckbox id="isModel" value="#{managedBean.isModel}" >
    <p:ajax event="change" process="@this" oncomplete="if(#{not managedBean.isModel}) PF('confirmDialog').show()" />
</p:selectBooleanCheckbox>

其他行动应该是什么?您还可以使用侦听器并使用它打开对话框:

<p:selectBooleanCheckbox id="isModel" value="#{managedBean.isModel}" >
    <p:ajax event="change" listener="#{managedBean.isModel}/>
</p:selectBooleanCheckbox>

豆:

public void isModel() {
if(isModel) {    
    RequestContext context = RequestContext.getCurrentInstance();
    context.execute("PF('confirmDialog').show();");
    }
else{
    // do some other action
    }
}