MaxLength não funciona em todos componentes

Estou utilizando o primefaces e preciso utilizar o maxLength, porém ele só funciona em alguns componentes, como o inputText, ele funciona, mas no inputNumber já não funciona, e se eu colocar convertNumber no inputText ele também não funciona.

Existe alguma outra forma de se fazer esse controle?

O atributo correto seria maxlength e não maxLength, da uma conferida ai…
E aproposito, aqui funciona corretamente

<p:inputNumber maxlength="3"></p:inputNumber>

@Mike Eu digitei errado apenas aqui, na página está maxlength, mas mesmo assim não funciona.

Estranho funcionar ai, eu pesquisei e vi falando que por padrão ele não funciona para Number por uma questão de design mesmo

A questão do inputNumber eu consegui resolver de outra forma, porém nesse caso que eu preciso de um pattern ele n funciona.

<p:inputText id="valor" maxlength="5" value="#{aicController.selected.valor}" title="#{bundle.CreateAicTitle_valor}" required="true" requiredMessage="Preencha o campo Valor." >
       <f:convertNumber pattern="#,##0.00"/>
 </p:inputText>

Seria isso aqui que você precisa?

<p:inputNumber id="valor" value="#{aicController.selected.valor}" maxValue="99999.99" title="#{bundle.CreateAicTitle_valor}" padControl="true" decimalSeparator="," symbol="R$" thousandSeparator="." required="true" requiredMessage="Preencha o campo Valor."></p:inputNumber>

Aqui está dizendo que o padControl não está definido no componente do primefaces

Qual a versão do seu PrimeFaces?
Eu estou usando a 6.2

Versão 6.0

O que esse componente faz?

padControl força a ficar com 00 nas casas decimais
Ex: 50 vai para 50.00

Entendi, vou ver se é viável eu atualizar para esta versão

Talvez o padrão do padControl seja true, ai nem precisa por.
No seu caso, testa o que eu te mandei sem o padControl

Sem o padControl, quando eu digito 1234, fica 1.234 e não 12,34 como eu gostaria que ficasse

O padControl so força o 00, ele não irá transformar 1234 em 12,34

Então não teria como eu utilizar, eu precisaria de um pattern="#,##0.00", mas o inputNumber não suporta isso.

O que você pode fazer é criar isso na mão, utilizando ajax.
A cada tecla que der, chama um método, se o conteudo tiver tamanho 2, adiciona uma virgula, se tiver 5, adiciona um ponto

Eu tenho uma jquery que faz isso, só que ela inibi o max, e não fica um limite, haha

Hahaha, uma vez eu fiz com cpf, com valor monetario não deve ser tão diferente.
Qualquer coisa só dar um toque.

Eu não sei outra solução pro seu caso :frowning:

O problema está sendo exatamente com a precisão que eu preciso colocar, ele não ta enxergando como um número dentro da jQuery pra fazer esse limite, quando defino a precisão pra 0, ele funciona direito, mas ai não fica 12,34 ao digitar 1234. Acho que vou ter de deixar sem limite mesmo.

La para as 20:00 vou tentar fazer o que eu te disse, eu estava afim de fazer algo parecido mesmo.
Se quiser tentar quebrar a cabeça em outra coisa do seu projeto, quebra ae haha
Ai assim que eu conseguir, posto aqui a solução.

Beleza, estou corrigindo outras coisas aqui.