Ho una semplice pagina di accesso che visualizza un messaggio se il login non ha avuto successo. Vorrei che questo messaggio scomparisse dopo 5 secondi, ma non riesco a farlo funzionare.Come svanire un messaggio dopo un timeout
La parte di accesso (rimosso la maggior parte della roba irrilevante):
<h:inputText title="Name" value="#{authBean.name}" id="username" />
<h:inputSecret title="Password" value="#{authBean.password}" id="password" />
<p:commandButton id="loginButton" action="#{authBean.loginAndRedirect}"
update="@form" value="Login" />
<h:message id="messages" for="login:username" />
Quello che ho provato finora:
Il comando inserito nella linea di comando Firebug funziona perfettamente: $('[id$=messages]').fadeOut();
Ora ho bisogno di un modo per attivarlo da un timer:
impostare un callback sul pulsante come questo non funziona (nessun effetto, nessun errore):
<p:commandButton ... oncomplete="setTimeout(5000, '$('[id$=messages]').fadeOut())" ... />
ho provato con onclick
e oncomplete
, ma senza alcun effetto e nessun errore.
provato utilizzando effetti primfaces (effetti JQuery imbustati) sull'elemento message
:
<h:message id="messages" for="login:username" errorClass="errorMessage">
<p:effect type="fadeout" event="load" delay="5000">
<f:param name="mode" value="'hide'" />
</p:effect>
</h:message>
alcun effetto, nessun errore.
+1 grazie, bipen. Funziona bene. – kostja
benvenuto ... felice che abbia aiutato .. felice codifica .. :) – bipen