Fechado - Passar o focus no primefaces - maxlength

3 respostas Resolvido
jsfprimefacesjava
guilhermebhte

Tenho uma tela com vários componentes, e todos eles existem um uma definição de maxlength.

<p:inputMask id="iptTxtUO" maxlength="4" size="10" mask="9999" />
<p:inputMask id="iptTxtFuncao" maxlength="1" size="10" mask="9"/>

Campos não estão passando entre si automaticamente no preenchimento, exemplo ao preencher o quarto caracter no campo iptTxtUO ele passa automaticamente para o campo iptTxtFuncao ?

3 Respostas

Analistadesuporte_22

Bom dia, acredito que vc não precisa especificar o tamanho Maxlength, pois a própria mascara Mak, irá fazer esse papel limitando o tamanho para 4 caracteres.

guilhermebhte

Mas como passar o focus ?

guilhermebhte
Solucao aceita

Fiz assim:

<script type="application/javascript">
$('input[maxlength][tabindex]').on('keyup', function() {
    var $this = $(this);
    if ($this.val().length == $this.attr('maxlength')) {
        $("input[maxlength][tabindex='" + (parseInt($this.attr('tabindex')) + 1) + "']").focus();
    }
});
</script>

<p:inputText id="iptTxtUO" onkeypress='return SomenteNumeros(event)' maxlength="4" tabindex="1">

<p:inputText id="iptTxtFuncao" onkeypress='return SomenteNumeros(event)' maxlength="1" tabindex="2">
Criado 10 de outubro de 2017
Ultima resposta 11 de out. de 2017
Respostas 3
Participantes 2