当我单击提交按钮时,我想显示一个弹出窗口,其中包含某些 inputText 字段的 requiredMessages。但仅限于有这些消息的情况。我已经尝试在 oncomplete 标签上使用 bean 变量和 javascript,但我无法使其正常工作。如果我在 p:dialog 中放置visible=”true”,则始终显示弹出窗口,尽管我尝试通过命令按钮控制它。现在,我有了这个,但弹出窗口从未显示:
<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>
我怎样才能做到这一点?提前致谢。
标准 JSF 和 PrimeFaces 不支持基于请求的 EL 评估on*
属性。 RichFaces 是唯一支持这一点的人。此外,标准 JSF<h:commandButton>
没有oncomplete
根本没有属性。您可能对 PrimeFaces 感到困惑<p:commandButton>
有几种方法可以实现这一目标:
-
检查中的状况visible
的属性<p:dialog>
反而。
<p:dialog visible="#{not empty facesContext.messageList}">
或者如果您只想显示验证消息而不是所有消息
<p:dialog visible="#{facesContext.validationFailed}">
-
使用 PrimeFaces<p:commandButton>
相反,PrimeFaces JS API 支持#{facesContext.validationFailed}
条件通过args
对象以及:
<p:commandButton ... oncomplete="if (args.validationFailed) dlg1.show()" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)