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

Dúvida no Ex. 12 da Aula 9 - inputMask

O componente inputMask do Primefaces apresenta um comportamento indesejado, ele apaga o que é digitado se o campo não for totalmente preenchido. Tem como evitar esse comportamento? Exemplos de valores fornecidos: 1222 e 444444.

    <p:inputMask id="isbn" value="#{livroBean.livro.isbn}" required="true"
        validator="#{livroBean.comecaComDigitoUm}" mask="999-9-99-999999-9">
    </p:inputMask>
2 respostas
solução!

Olá Rogério, esse comportamento "não desejado" é muito usado, foi por isso que o Primefaces o adotou como padrão.

O problema é que por ser um componente, uma caixa preta, você não pode alterar seu comportamento facilmente e muitas vezes o autor do componente não abre muito espaço para parametrização. Este é o caso do <p:inputMask>. E agora?

A maior vantagem de se trabalhar com componente se torna um desvantagem: quando queremos ir além do que o componente oferece. No seu caso, uma solução com Javascript puro é o caminho, apesar de ser justamente essa complexidade que o componente quer retirar.

Olhando a documentação do componente, infelizmente não há algo que desabilite esse padrão:

http://www.primefaces.org/showcase/ui/input/inputMask.xhtml (clique na aba documentation).

Obrigado Flávio!!!