Como tirar a mensagem (FacesMessage - PrimeFaces) com evento ajax onblur?

3 respostas
V

O campo é obrigatório e quando perco foco envio mensagem, com o ajax, atualizando a mensagem. Porém quando digito as informações no campo, a mensagem não desaparece.
Como fazer, pelo próprio evento ajax (onblur), a mensagem desaparecer?

Este é o código:

<h:outputText value=“Nome:” />
<h:inputText id=“nome” value="#{loginMb.usuario.nome}"
required=“false” size=“20”>
<p:ajax update=“msgNome” event=“blur”
listener="#{loginMb.criticaCamposTela}" />
</h:inputText>

public void criticaCamposTela(AjaxBehaviorEvent actionEvent) {

String idComponenteTela = actionEvent.getComponent().getId();

if (idComponenteTela.equals(“nome”)) {

if (this.usuario.getNome().trim().length() == 0) {

FacesContext.getCurrentInstance().addMessage(

null,

adicionaMsg(FacesMessage.SEVERITY_WARN, “Atenção !!!”,

“O nome é um campo obrigatório.”));

}

}

3 Respostas

novato25

tenta isso:

<h:outputText value="Nome:" /> 
<h:inputText id="nome" value="#{loginMb.usuario.nome}" required="false" size="20"> 
      <p:ajax update="msgNome" event="blur" listener="#{loginMb.criticaCamposTela}" />
      <p:ajax update="msgNome" event="keyup" />  
</h:inputText>
V

Novato25, obrigado, mas não funciona.

novato25

humm… tenta isso:

<h:outputText value="Nome:" />   
<h:inputText id="nome" value="#{loginMb.usuario.nome}" required="false" size="20">   
      <p:ajax update="msgNome" event="blur" listener="#{loginMb.criticaCamposTela}" />  
      <p:ajax update="msgNome" event="click"  listener="#{loginMb.limparMensagens}" />    
</h:inputText>
Criado 16 de janeiro de 2013
Ultima resposta 16 de jan. de 2013
Respostas 3
Participantes 2