2013-03-11 3 views
5

У меня есть простая страница входа, в которой отображается сообщение, если логин не был успешным. Я хочу, чтобы это сообщение исчезло через 5 секунд, но я не могу заставить его работать.Как исчезнуть сообщение после таймаута

Войти часть (удаляется большая часть постороннему материала):

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

То, что я пытался до сих пор:

Команда вошла в командной строке Firebug работает отлично: $('[id$=messages]').fadeOut();

Теперь мне нужен способ вызвать его по таймеру:

установка обратного вызова на этой кнопке не работает (без эффекта, без ошибок):

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

Я пробовал с onclick и oncomplete, но без эффекта и без каких-либо ошибок.

пробовали использовать primfaces эффекты (эффекты обернутые JQuery) на 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> 

никакого эффекта, без ошибок.

ответ

5

Вы не нашли function замыкание внутри setTimeout(). Кроме того, вызов функции лучше, чем использование встроенного JavaScript. Легче читать и отлаживать.

E.g.

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

с

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

+1 спасибо, bipen. Он работает красиво. – kostja

+0

приветствуется ... рад, что это помогло .. счастливое кодирование .. :) – bipen

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

+1 спасибо, K D. Он работал, когда я заменил двойные qoutes вокруг 5000 с одинарными кавычками. – kostja

+0

Спасибо :) +1 к вам тоже для редактирования кода, который я предоставил, чтобы заставить его работать. Не могли бы вы отметить его как ответ? –

+0

Жаль, К. D. Честь идет на созревание за предоставление единственного ответа, который работает без изменений , – kostja

Смежные вопросы