【问题标题】:How wipe out p:message from p:dialog on close?如何在关闭时从 p:dialog 中清除 p:message?
【发布时间】:2012-04-30 01:05:03
【问题描述】:

我有一个使用 Primefaces p:dialog 组件的 JSF 2.0 页面。用户可以在对话框中输入信息并单击保存/取消。如果他们有验证错误,它会显示在对话框中。当他们关闭或取消对话框时,我希望“清除”任何 p:message 组件,即如果用户再次打开对话框,他们将不会看到旧的验证消息。

用例是:用户打开对话框,未填写所有必填字段,单击保存,对话框中显示必填字段错误消息。用户单击取消关闭对话框。然后用户单击按钮再次打开对话框。我不希望他们看到以前的验证消息(目前他们可以)。

【问题讨论】:

    标签: jsf-2 primefaces


    【解决方案1】:

    Ajax-在打开对话框组件之前更新它。

    例如

    <p:commandButton ... update=":dialog" oncomplete="dialog.open()" />
    

    它不仅会清除消息,还会输入字段值(或至少将它们保留为正确的默认值)。

    【讨论】:

    • 如果我还想清除输入字段值怎么办? (这似乎没有这样做)
    • 是的。继续阅读 Stack Overflow 和 PrimeFaces 论坛上的问题和答案(我没有)。您将学到很多与您当前情况没有直接关系但可以应用于当前或未来项目的东西。
    • 在里面。另一个原因是&lt;p:dialog&gt; 可以通过modal="true" 重新定位到正文的末尾。这样它就不会在生成的 HTML DOM 树中的表单中了。对话框应该有自己的形式。
    • @BalusC,在我的情况下,primefaces 验证消息已被正确擦除,但 jsf 验证(只是输入上的红色边框)在显示对话框时继续。你有想法吗?谢谢。
    • @Rafael:它确实不会清除无效状态,然后前往stackoverflow.com/questions/12619228/…stackoverflow.com/questions/6642242/…
    猜你喜欢
    • 1970-01-01
    • 2013-02-26
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    相关资源
    最近更新 更多