2013-03-11 19 views
5

Mam prostą stronę logowania, która wyświetla komunikat, jeśli logowanie nie powiodło się. Chciałbym, aby ta wiadomość zanikała po 5 sekundach, ale nie mogę jej uruchomić.Jak wygasić komunikat po przekroczeniu limitu czasu

Część login (usunięto większość nieistotnych rzeczy):

<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" /> 

Co próbowałem dotąd:

Komenda wpisana w wierszu poleceń Firebug działa doskonale: $('[id$=messages]').fadeOut();

Teraz potrzebuję sposobu na wyzwolenie go przez timer:

ustawienie wywołania zwrotnego na przycisku takim jak to nie działa (brak efektu, brak błędu):

<p:commandButton ... oncomplete="setTimeout(5000, '$('[id$=messages]').fadeOut())" ... /> 

Próbowałem go onclick i oncomplete ale bez efektu i bez błędów.

wypróbowany przy primfaces efekty (owinięte efektów JQuery) na elemencie 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> 

brak efektu brak błędów.

Odpowiedz

5

Teraz brakuje function zamknięcie wewnątrz setTimeout(). Również wywoływanie funkcji jest lepsze niż przy użyciu wbudowanego JavaScript. Łatwiej jest czytać i debugować.

E.g.

<p:commandButton ... oncomplete="fadeoutfunction()" ... /> 

z

function fadeoutfunction(){ 
setTimeout(function(){ 
    $('[id$=messages]').fadeOut(); 
},5000); 
} 
+0

+1 dzięki, dwunożny. Działa ładnie. – kostja

+0

witam ... cieszę się, że pomógł .. szczęśliwe kodowanie .. :) – bipen

2
<p:commandButton ... 
oncomplete="setTimeout(function(){$('[id$=messages]').fadeOut()},'5000')" ... /> 
+0

+1 dzięki, K D. pracował kiedyś zastąpione podwójnie qoutes całym 5000 z pojedynczych cudzysłowach. – kostja

+0

Dziękuję :) +1 do ciebie za edycję kodu, który podałem, żeby działał. Czy możesz go oznaczyć jako odpowiedź? –

+0

Przepraszam, K D. Zaszczyt dotyczy dwunogich za udzielenie jedynej odpowiedzi, która działa bez zmian . – kostja

Powiązane problemy