validação inputText do primefaces

8 respostas
M

alguem sabe me dizer como faço a validação do campo texto do primefaces para permitir que somente receba letras pelo usuário, estou usando a biblioteca 3.2

8 Respostas

G

Você pode criar um validator pra aceitar so letras ou vai ter que criar uma função em javascript pra isso.

Se for uma mask tem o componente inputMak.

[]'s

M

como eu crio um validador na tela msm?

meu codigo ta assim:
<h:outputText value=“Nome: *” />
<p:inputText size=“60” value="#{MBPaciente.nome}" maxlength=“65” />

tbm ja tentei isso:
<p:inputText id=“secret” values="#{MBPaciente.nome}" >
<p:validateRegex pattern="[a-zA-Z ]*" />
</p:inputText>

mais nao deu certo

ricardoleme

Olá!

Eu utilizo o p:inputMask do próprio Primefaces

<p:inputMask value="#{MBPaciente.nome}" mask="aaaaaaaaaa"/>

Em mask, informe:
a - Representa um caractere alfa (A-Z,a-z)
9 - Representa um número (0-9)

    • Representa um caractere alfanumérico (A-Z,a-z,0-9)
M

blza ricardo leme, até daria para usar o input mask, o problema é que nao se sabe ao certo quantos caracteres o usuario vai digitar, no meu caso eh o campo nome do paciente
colocando o inputMask se torna obrigatorio o preenchimento de todos os caracters contidos na mascara, mais um nome pode ter poucos ou varios caracteres
mais alguma dica

otOtavio

bom dei uma olhada, faria assim...

criaria um validator

public void validaNumero(FacesContext context, UIComponent toValidate, Object value) {
            boolean valida = false;
            if(value != null){      
               for (char letra : ((String) value).toCharArray()) { 
                  if(letra < '0' || letra > '9') { 
                     valida = true;
                     break; 
                }  
             }

             ((UIInput) toValidate).setValid(!valida);

            FacesMessage message = new FacesMessage(" Valor com numeros!");
            message.setSeverity(FacesMessage.SEVERITY_ERROR);
            context.addMessage(toValidate.getClientId(context), message);
        }

e chamaria o validator no campo

... validator="#{empresaController.validaNumero}"/>

não testei, fiz direto aqui

tirei daqui.: [url]http://javafree.uol.com.br/topic-880048-Como-verificar-se-so-existe-numeros-dentro-da-String.html[/url]

agora se tem algo melhor nao sei tambem =P

otOtavio

mais uma coisa

da para verificar ali na função

for (char letra : texto.toCharArray()) if(letra.isLetter) { //mens de erro }

tambem nao testei, mas é mais legivel e compacto

M

blza otavio, esses parametros que o metodo de validação recebe vem de onde ?
vou tentar se der certo posto aqui

otOtavio

vc colocando o validator no campo do nome

<p:inputText id="email" value="#{usuarioController.usuario.email}" size="40" required="true" requiredMessage="Email Obrigatório" validator="#{usuarioController.validaEmail}"/>

o valor que ele passa e o conteudo do campo

Criado 19 de outubro de 2012
Ultima resposta 21 de out. de 2012
Respostas 8
Participantes 4