Primefaces SelectBooleanCheckbox 与确认

sky*_*ber 2 jsf primefaces

我想在primefaces中的选择/取消选择复选框上显示确认对话框。我试过

<p:selectBooleanCheckBox value="#{myBean.checkBoxValue}">
    <p:confirm message="Are you sure?"/>
</p:selectBoooleanCheckBox>
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为 selectBooleanCheckBox 不可确认。有什么解决方法可以解决这个问题吗?

Leo*_*ida 5

一种方法是创建自己的confirmDialog,如

<p:confirmDialog widgetVar="myOwnConfirmDialog" message="Confirm ?">
    <p:commandButton value          =   "Yes"
                     action         =   "#{myBean.checkConfirmedAction}"
                     oncomplete     =   "PF('myOwnConfirmDialog').hide()"/>

    <p:commandButton value          =   "No" 
                     action         =   "#{myBean.checkCancelledAction}"
                     oncomplete     =   "PF('checkConfirmwdgt').toggle(); PF('myOwnConfirmDialog').hide()"/>
</p:confirmDialog>
Run Code Online (Sandbox Code Playgroud)

然后使用onchange事件打开confirmDialog:

<p:selectBooleanCheckbox    value="#{myBean.checkBoxValue}" 
                            onchange="PF('myOwnConfirmDialog').show()" 
                            widgetVar="checkConfirmwdgt">
</p:selectBooleanCheckbox>
Run Code Online (Sandbox Code Playgroud)

编辑: 我在我的答案中打了一个错字和错误。错字实际上是<p:confirm>在内部 使用<p:selectBooleanCheckbox>(您是对的,selectBooleanCheckbox 无法确认。)错误是<p:selectBooleanCheckbox>不会触发 onclick,而只会触发 onblur、onchange 和 onfocus。使用 onchange 会起作用。