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
<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?