我正在primefaces中处理JSF应用程序,因为我正在通过<p:messages>
.
因此,当用户单击提交时,页面将被处理并触发 p:messages 对话框以向用户显示信息,
我提到了 Primefaces p:messages展示页面
它工作正常..但是在显示消息后,它不会自动关闭,要么我们需要手动关闭该对话框,要么它保持在打开阶段。
我需要它在向用户显示消息后自动关闭...我该怎么做...有人可以建议我该怎么做吗?
我正在primefaces中处理JSF应用程序,因为我正在通过<p:messages>
.
因此,当用户单击提交时,页面将被处理并触发 p:messages 对话框以向用户显示信息,
我提到了 Primefaces p:messages展示页面
它工作正常..但是在显示消息后,它不会自动关闭,要么我们需要手动关闭该对话框,要么它保持在打开阶段。
我需要它在向用户显示消息后自动关闭...我该怎么做...有人可以建议我该怎么做吗?
<p:messages id="msgs">
最终呈现为<div id="msgs">
,然后使用给用户的事实消息更新其内容。
如果您想在延迟一段时间后清除消息屏幕,您应该setTimeout
在 ajax 调用完成后使用 JavaScript 函数:
<p:commandButton ...
oncomplete="setTimeout(function() { $('#msgs").html(''); }, 3000);" />
函数的第二个参数setTimeout
是以毫秒为单位的延迟。
另一种选择是<p:growl>
改用。
Worked for me for <p:fileUpload>
, which was in <p:dataList>
and <h:panelGrid>
elements.
<p:fileUpload...
oncomplete="setTimeout(function() { $('[id$=mr-upload-messages]').hide(1000); }, 2000);">
...
<p:messages id="mr-upload-messages" showDetail="true" showSummary="false" closable="true"/>
I have used jQuery $('[id$=mr-upload-messages]'
to find id's which ends with mr-upload-messages
, because Primefaces adds it's unique identifier at the beginning of id.
$('#msgs').html('');
立即在 3 秒内隐藏,但如果你想像 jquery hide 方法那样慢慢隐藏,请执行此操作..
<p:commandButton ...
oncomplete="setTimeout(function() { $('#msgs').hide(1000); }, 3000);" />
hide(1000);
隐藏动作将在 1 秒内完成
我引起了注意,并这样做了:
function hideMsg(){
$("#msg").delay(1000).hide(1000);
}
oncomplete="hideMsg()"