AdS*_*Ssa 2 javascript jsf popup primefaces
我想在单击提交按钮时显示一些带有一些inputText字段的requiredMessages的弹出窗口.但只是在有这些消息的情况下.我已经在oncomplete标签上尝试使用bean变量和javascript,但我无法使其正常工作.如果我在p:对话框中输入visible ="true",则会始终显示弹出窗口,但我尝试从commandButton控制它.现在,我有这个,但弹出窗口永远不会显示:
<h:inputText id="Scheme"
required="true"
requiredMessage="Required.">
</h:inputText>
<h:commandButton id="submitModify" value="#{msg['systemdetail.modify']}"
action="#{sistem.modify}"
oncomplete="if (#{facesContext.maximumSeverity != null}) {dlg1.show();}">
</h:commandButton>
<p:dialog id="popup"
style="text-align:center"
widgetVar="dlg1"
modal="true">
<h:messages layout="table"/>
</p:dialog>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?提前致谢.
Bal*_*usC 12
标准JSF和PrimeFaces不支持on*属性中基于请求的EL评估.RichFaces是唯一支持它的人.此外,标准JSF <h:commandButton>根本没有oncomplete属性.你可能会对PrimeFaces感到困惑<p:commandButton>
有几种方法可以实现这一目标:
检查相反visible属性中的条件<p:dialog>.
<p:dialog visible="#{not empty facesContext.messageList}">
Run Code Online (Sandbox Code Playgroud)
或者如果您只想显示验证消息而不是所有消息
<p:dialog visible="#{facesContext.validationFailed}">
Run Code Online (Sandbox Code Playgroud)
使用PrimeFaces <p:commandButton>,PrimeFaces JS API也支持#{facesContext.validationFailed}通过args对象的条件:
<p:commandButton ... oncomplete="if (args.validationFailed) dlg1.show()" />
Run Code Online (Sandbox Code Playgroud)