我有一个由
PrimeFaces.current().dialog().openDynamic()
显示的对话框。该对话框中有一些输入字段和两个按钮。一种用于应用任何更改,另一种用于取消。在应用更改之前,我想显示一条确认消息。但仅当输入字段具有某些特定值时。
<p:form>
<p:panelGrid columns="2">
<p:outputLabel for="input1" value="Input 1">
<p:inputText id="input1" value="#{bean.input1}">
<p:outputLabel for="input2" value="Input 2">
<p:inputText id="input2" value="#{bean.input2}">
</p:panelGrid>
<p:panelGrid columns="2">
<p:commandButton id="apply" action="#{bean.apply}">
<p:confirm header="Confirmation"
message="Do you really want to apply the values?"
beforeShow="beforeShow();"
disabled="#{not bean.showConfirm()}">
</p:commandButton>
<p:commandButton id="cancel" action="#{bean.cancel}">
</p:panelGrid>
</p:form>
现在的问题是,当显示对话框时,会评估
#{bean.showConfirm()}
的 disabled
。但我需要在按下应用按钮时评估 disabled
。
我还尝试使用
beforeShow
,其记录为:在显示确认对话框之前执行回调。返回 false 以防止出现对话框。
function beforeShow(){
alert('*** beforeShowFalse ***');
return false;
}
但是无论
beforeShow()
返回什么,总是会显示确认对话框。
欢迎任何提示!
我正在使用 PF 12.0.4 和 JSF 2.3。
我通过检查
p:confirm
方法是否应显示确认消息,在没有全局 apply()
的情况下解决了这个问题。