我想在primefaces中的选择/取消选择复选框上显示确认对话框。我试过
<p:selectBooleanCheckBox value="#{myBean.checkBoxValue}">
<p:confirm message="Are you sure?"/>
</p:selectBoooleanCheckBox>
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为 selectBooleanCheckBox 不可确认。有什么解决方法可以解决这个问题吗?
一种方法是创建自己的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 会起作用。