Como desabilitar/ou so leitura um input text em jsf/primefaces 2.2.1 por variavel no readonly

5 respostas
B
<h:inputText id="email" value="#{UserBean.email}" >
                                    <p:ajax event="blur" listener="#{UserBean.VerificarEmail2}"
                                            process="email" update="mensagens:mensagem"/>
                                </h:inputText>
                                
                                <h:outputLabel value="CONFIRMAR EMAIL:*"/>
                                <h:inputText id="email2" value="#{UserBean.email2}"
                                             readonly="#{UserBean.campoEmail}"/>

entao nakele verificaremail, se caso o email nao passar queria deixar o ‘CONFIRMAR EMAIL’ para somente leitura, algum mudo do usuario nao poder digitar.

vlww a todos

5 Respostas

C

O que você fez está correto, sócriar aquela variável campoEmail como Boolean no Bean e ao processar o ajax dar update no campo email2, pq se não ele não vai renderizar

B

eu fiz mano num deu certo

so da certo se eu setar o private boolean campoEmail = true;

<h:inputText id="email" value="#{UserBean.email}" >
                                    <p:ajax event="blur" listener="#{UserBean.VerificarEmail2}"
                                            process="email" update="mensagens:mensagem"/>
                                </h:inputText>
                                
                                <h:outputLabel value="CONFIRMAR EMAIL:*"/>
                                <h:inputText id="email2" value="#{UserBean.email2}"
                                             readonly="#{UserBean.campoEmail}" rendered="true" >
                                    <p:ajax update="email2" />
                                </h:inputText>
if(user.selectUser(email) == true)
          {
               FacesContext.getCurrentInstance().addMessage(null,
                     new FacesMessage(FacesMessage.SEVERITY_INFO,
                     "Usuario já existe", null));
              setCampoEmail(true);
               campoEmail = true;

               
          }
C
<p:inputText id="email" value="#{UserBean.email}" >  
             <p:ajax event="blur" listener="#{UserBean.VerificarEmail2}"  
                  process="email" update="email2"/>  
         </p:inputText>  
                                 
         <h:outputLabel value="CONFIRMAR EMAIL:*"/>  
         <p:inputText id="email2" value="#{UserBean.email2}"  
              readonly="#{UserBean.campoEmail}" />
E no método VerificarEmail2, é onde você vai setar a variável campoEmail TRUE ou FALSE
B

nao da mano, ali tenho q fazer isso

update="mensagens:mensagem"

por isso esta assim

<h:inputText id="email" value="#{UserBean.email}" >
                                    <p:ajax event="blur" listener="#{UserBean.VerificarEmail2}"
                                            process="email" update="mensagens:mensagem"/>
                                </h:inputText>
                                
                                <h:outputLabel value="CONFIRMAR EMAIL:*"/>
                                <h:inputText id="email2" value="#{UserBean.email2}"
                                             readonly="#{UserBean.campoEmail}" rendered="true">
                                    <p:ajax update="email2" />
                                </h:inputText>
B

cara eu tenho um caixa de mensagem por isso num ta o update la vou postar a parte toda do codigo referente ai isso acho q fica mais facil para vc enteder

<h:form id="mensagens" styleClass="erros">
                    <p:messages id="mensagem" />
</h:form>

 <h:outputLabel value="EMAIL:*"/>

                                <h:inputText id="email" value="#{UserBean.email}" >
                                    <p:ajax event="blur" listener="#{UserBean.VerificarEmail2}"
                                            process="email" update="mensagens:mensagem" />
                                </h:inputText>
                                
                                <h:outputLabel value="CONFIRMAR EMAIL:*"/>
                                <h:inputText id="email2" value="#{UserBean.email2}"
                                             readonly="#{UserBean.campoEmail}" >
                                    <p:ajax event="keyup" update="email2" />
                                </h:inputText>
public void VerificarEmail2(){
         UsuarioDaoPG user = new UsuarioDaoPG();
         UserBean bean = new UserBean();
         campoEmail= false;
         String[] aux = email.split("@");
         String aux2 = aux[1];
         

         if (!(email.split("@").length == 2) && !(aux2.split(".").length >= 1)){
             FacesContext.getCurrentInstance().addMessage(null,
                     new FacesMessage(FacesMessage.SEVERITY_INFO,
                     "Email Invalido", null));
             campoEmail = true;
         }
          if(user.selectUser(email) == true)
          {
               campoEmail = true;
               setCampoEmail(true);
               FacesContext.getCurrentInstance().addMessage(null,
                     new FacesMessage(FacesMessage.SEVERITY_INFO,
                     "Usuario já existe", null));
          }
     }
Criado 26 de março de 2012
Ultima resposta 27 de mar. de 2012
Respostas 5
Participantes 2