JSF InputText (contador de caracteres)

Preciso por no InputText um contador de caracteres como tem no inputTextarea a propriedade counter=“display”. Tentei com JavaScript porém sem sucesso.

Você quer limitar a quantidade de caracteres ou quer exibir a quantidade?

Se for exibir terá que usar ajax com o evento keyup
Qualquer coisa só postar

Obrigado pela resposta Mike. Preciso exibir a quantidade de caracteres restante conforme vai digitando no InputText. Tem um exemplo ? Valeu

Ve se é isso ai :slight_smile:

    <h:body>
		<h:form>
			<p:inputText value="#{testeBean.texto}" maxlength="#{testeBean.maxCaracter}">
				<p:ajax event="keyup" process="@this" update="restante" ></p:ajax>
			</p:inputText>
			
			<h:outputText id="restante" value="#{testeBean.restante()} caracteres restantes" style="margin-left: 10px"/>
		</h:form>
	</h:body>

@Named
@ViewScoped
public class TesteBean implements Serializable{

	private String texto = "";
	private int maxCaracter = 10;
	private int caracterRestante;
	
	public int restante()
	{
		return maxCaracter - texto.length();
	}
	public int getCaracterRestante() {
		return caracterRestante;
	}

	public void setCaracterRestante(int caracterRestante) {
		this.caracterRestante = caracterRestante;
	}

	public String getTexto() {
		return texto;
	}

	public void setTexto(String texto) {
		this.texto = texto;
	}

	public int getMaxCaracter() {
		return maxCaracter;
	}

	public void setMaxCaracter(int maxCaracter) {
		this.maxCaracter = maxCaracter;
	}
}

Meu <p:inputText não está aceitando o <p:ajax, estou o usando o “primefaces-4.0”. No seu funciona com primefaces mais recente ? E com JavaScript já que é apenas uma mensagem e pode ficar no cliente já fez algo parecido ?

Eu estou usando a versão 6.2 e esta tudo certo aqui.
Do 4 pro 6.2 mudou muito

Com JS eu nunca fiz

Tente isso:

<script>
	function contaCaracteres(){
		document.getElementById('formPrincipal:txtCaracteresRestantes').value = 500 - document.getElementById('formPrincipal:txtC').value.length;
	}
</script>
<p:inputText onkeyup="contaCaracteres()" id="txtC" maxlength="500"/><p:inputText id="txtCaracteresRestantes" value="500" />

RenanRosa, funcionou. Porém eu precisava mostrar a quantidade de caracteres em um Texto normal e não em um inputText, tentei tirar toda a borda do inputText porém não some. Tentei usar o outputText no lugar do inputText e não atualiza, fica mostrando o valor máximo apenas.

Porque não atualiza a versão do PrimeFaces?