Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Divergência na validaçao

Gostaria de verificar se, nesse caso, não seria mais interessante por keyup como evento para disparar o ajax, pois usando o keypress, a ação será disparada antes do campo receber o valor e, com isso, teremos divergências na hora da validação. Desde já, agradeço a atenção. Segue abaixo, exemplo de como ficaria o ajax.

    <f:ajax event="keyup" render="messages"/>
3 respostas

Mateus,

Você pode fazer a validação no keyup, mas deve atentar para o fato de que cada vez que o usuário digitar um caractere, será feita uma requisição assíncrona (com ajax) ao servidor.

Assim, quando o usuário digitar, por exemplo, 3, será feita uma requisição de validação. Haverá algum ISBN registrado com o valor 3? Provavelmente não!

Dessa forma (com keyup), as validações falharão até o número ISBN estar completo e correto.

solução!

Manoel,

Acredito que com o keypress irá acontecer a mesma coisa (validar sempre que algo for digitado), com uma pequena diferença, a validação será feita quando o botão estiver pressionado, com isso, o valor ainda não estará atualizado. Vejamos um exemplo: Eu digitei no campo o valor "3334444555666" e depois disso, percebi que faltava o número 1 no inicio, ai fui lá no inicio e digitei "1". No exemplo que citei, se estiver com keypress, quando eu clicar no número 1, será enviado o valor sem o mesmo para a validação e assim será retornado erro, já com o keyup, o valor será enviado com o número 1 na frente e assim, teremos a validação correta.

Mateus,

Sim, acontecerá a mesma coisa. Não estou fazendo esse curso, pensei que a validação estivesse sendo feita no onblur, que é quando o elemento perde o foco, ou seja, quando o usuário sai do campo. É o mais comum para validações.

Nesse caso, ficaria assim:

<f:ajax event="blur" render="messages"/>

Testa aí dessa forma.