Jump to content


Photo

Contador De Caracteres


  • Faça o login para participar
33 replies to this topic

#1 cartoon

cartoon

    Turista

  • Usuários
  • 32 posts
  • Sexo:Não informado

Posted 31/12/2003, 13:07

ae pessoal to fazendo um formulario e gostaria de fazer um contador de caracteres tipo assim

aparece la encima da textarea

Maximo caracteres (250)
|---------------------------------------|
|abcdefg |
|---------------------------------------|

la no maximo de caracteres queria q apareça 243

comofazer isso ? :blink:

#2 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 31/12/2003, 14:02

Olá. Isso é javascript, mas dá uma olhada nesse código:

<script language="JavaScript">
function Contar(Campo){
document.getElementById("Qtd").innerText = 250-Campo.value.length
if((250-Campo.value.length)==0)
alert('Atenção, você atingiu o limite máximo de caracteres!');
}
</script>

<div id="Qtd">250</div>
<textarea onKeyUp="Contar(this)"></textarea>

#3 cartoon

cartoon

    Turista

  • Usuários
  • 32 posts
  • Sexo:Não informado

Posted 31/12/2003, 14:53

funciono PERFECT .. vlw mesmo

#4 pcmm

pcmm

    Normal

  • Usuários
  • 101 posts
  • Sexo:Não informado
  • Localidade:Cachoeira - BA
  • Interesses:ASP/ASP.net, ASP/Flash, VBS, Dreamweaver.

Posted 31/12/2003, 15:29

como ficaria esse codigo para que a contagem de caracteres fosse ascendente em vez de descendente??
<!--# oO PCMM Oo -->

#5 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 31/12/2003, 15:53

Bastaria fazer algumas modificações simples:

<script language="JavaScript">
function Contar(Campo){
document.getElementById("Qtd").innerText = Campo.value.length
if(Campo.value.length==250)
alert('Atenção, você atingiu o limite máximo de caracteres!');
}
</script>

<div id="Qtd">0</div>
<textarea onKeyUp="Contar(this)"></textarea>

#6 cybermix

cybermix

    andrewsmedina.com.br

  • Ex-Admins
  • 3586 posts
  • Sexo:Não informado
  • Localidade:Não sou desse planeta não!!!!
  • Interesses:python, fireworks, linux, php, flash...

Posted 02/01/2004, 09:19

muito obm o codigo mas isso é javascript
www.andrewsmedina.com.br

#7 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 14/01/2004, 12:39

o codigo e bom + depois que exibi a mensagem e o carinha clica no ok e vai tentar de novo digitar, ele continua digitandu normalmente !!!
-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#8 _MX_

_MX_

    Conhecimento nunca é demais

  • Usuários
  • 563 posts
  • Sexo:Não informado
  • Localidade:Diadema-sp

Posted 04/07/2004, 20:09

eu fiz o seguinte:

<script language="JavaScript">
function Contar(Campo){
	if(Campo.value.length>100){
  alert('Atenção, você atingiu o limite máximo de caracteres!');
  frmCadastrar.mensagem.value=frmCadastrar.mensagem.value.substring(0,100);
	}
	document.getElementById("qtd").innerText =100-Campo.value.length;
}
</script>

quando ultrapassa os caracteres permitidos exibe a mensagem e apaga o ultimo caractere
========================================================
Copiar o bom é melhor que inventar o ruim
========================================================
"O segredo da criatividade é saber esconder suas fontes"
(Einstein)
========================================================

#9 gabows888

gabows888

    Turista

  • Usuários
  • 39 posts
  • Sexo:Não informado

Posted 04/07/2004, 23:02

galera, o meu tah bem parecido com o seus aki, mas nao sei se vcs perceberam, mas se o cara dah BackSpace ele nao aumenta (pelo menos no meu script) o valor de caracteres q ainda cabem...ele se ajusta qdo o cara digita algo novamente, mas se o cara aperta BackSpace e para de digitar, ele fica errado...se alguem souber como arrumar...
Eu tentei assim:
...
rest=formulario.campoResto.maxlength-formulario.campoResto.value.length;
if(event.keyPress==8){
formulario.campoResto.value=rest+1;
}
---
mas ainda nao deu certo...sei lah, pela logica nao precisaria fazer isso, pois eu fiz assim:
<textarea name="texto"id="texto"cols="45"rows="10"maxlength="150"onkeypress="contador(this)"></textarea>
<input type="button"value="Enviar"onclick="envia()"><br>
<input type="text"name="resto">
</form>
<script language="javascript">
function contador(texto){
resto=texto.maxlength-texto.value.length;
if(event.keyPress==8){
contatoForm.resto.value=resto+1;
}
contatoForm.resto.value=resto;
if(resto<=0){
alert("Limite do tamanho do texto!");
contatoForm.texto.focus();
}
}
</script>
pela logica o 'onkeypress' deveria incluir o BackSpace, nao?

#10 Celão

Celão

    Marcelo Santino

  • Usuários
  • 525 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 15/07/2004, 00:38

po galera... usando aquele script do LeoB ou o do _MX_ (que não funcionou como deveria) o usuário digita 250 caracteres. Quando ele digita o 251 aparece a mensagem de erro, mas se ele der ok e continuar digitando ele vai aceitar e vai contanto -1, -2, -3...

Como faz pra travar e não deixar escrever de jeito nenhum se houver 250 letras???


valeu...
Marcelo Santino - DBA SQL Server/Oracle
Banco de dados e Tecnologia: www.bau-de-dev.com

#11 Felipe T.

Felipe T.

    Normal

  • Usuários
  • 79 posts
  • Sexo:Não informado

Posted 15/07/2004, 10:03

<script language="JavaScript">
function trava(Campo,maxm){
document.getElementById("Qtd").innerText = Campo.value.length
if(Campo.value.length >= maxm)alert("Fim do campo")

}
</script>
<form name="contatoForm">
<div id="Qtd">0</div>
<textarea name="texto" onKeyUp="trava(this,10)" onKeyDown="trava(this,10)"></textarea>
</form>

-----------------------------------------------------------
esse vai dar certo! (y)

Edição feita por: Felipe T., 15/07/2004, 11:25.

'***************************************
' FELIPE t.
' fgteixeira@pop.com.br
'***************************************

#12 Felipe T.

Felipe T.

    Normal

  • Usuários
  • 79 posts
  • Sexo:Não informado

Posted 15/07/2004, 11:55

iii... acho q falhou.. puts... ele soh dá mais uma travinha... :(
'***************************************
' FELIPE t.
' fgteixeira@pop.com.br
'***************************************

#13 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 15/07/2004, 12:06

Não tenho certeza, mas acho que se usarmos o event.keyCode ele cancela a tecla pressionada. Mas aí tem que ser no evento onKeyDown. Se não funcionar, tentem no evento onKeyPress.

<script language="JavaScript">
function Contar(Campo){
  document.getElementById("Qtd").innerText = 250-Campo.value.length
  if((250-Campo.value.length) <= 0){
     alert('Atenção! Você atingiu o limite máximo de caracteres!');
     event.keyCode = 0;
  }
}
</script>

<div id="Qtd">250</div>
<textarea onKeyDown="Contar(this)"></textarea>

Edição feita por: LeoB, 15/07/2004, 12:10.


#14 gabows888

gabows888

    Turista

  • Usuários
  • 39 posts
  • Sexo:Não informado

Posted 15/07/2004, 13:09

tenta issu aki:
<form name="contatoForm"action="">
Nome: <input type="text"name="nome"id="form"><br>
Assunto: <input type="text"name="assunto"id="assunto"><br>
<textarea name="texto"id="texto"cols="45"rows="10"maxlength="150"onKeyPress="contador(this)"></textarea>
<input type="button"value="Enviar"onClick="envia()">
<input type="button"value="Apagar"onClick="reset(this.form);contatoForm.resto.value=contatoForm.texto.maxlength"><br>
Caracteres Restantes: <input type="text"name="resto"value="150">
</form>
<script language="javascript">
function contador(texto){
resto=texto.maxlength-texto.value.length;
contatoForm.resto.value=resto;
if(resto<1){
alert("Limite do tamanho do texto!");
texto.value=texto.value.substring(0,texto.maxlength-1);
contatoForm.texto.focus();
}
}
function envia(){
resto=contatoForm.texto.maxlength-contatoForm.texto.value.length;
contatoForm.resto.value=resto;
nome=contatoForm.nome.value;
assunto=contatoForm.assunto.value;
texto=contatoForm.texto.value;
}
</script>


#15 _MX_

_MX_

    Conhecimento nunca é demais

  • Usuários
  • 563 posts
  • Sexo:Não informado
  • Localidade:Diadema-sp

Posted 18/07/2004, 11:44

fiz uma função que mesmo se você colar caracteres pelo menu edit ele conta quando sair o foco do campo.

function contarCaracteres(){
  var total=20;
  var digitado=frmMensagem.mensagem.value.length;
  if(digitado>total){
  	alert('Número máximo de caracteres excedido.');
  	frmMensagem.mensagem.value=frmMensagem.mensagem.value.slice(0,total) //exibe os 20 primeiros caracteres
  }
  digitado=frmMensagem.mensagem.value.length;
  var restante=total-digitado;
  document.getElementById('caracteres').innerText=restante.toString() + ' restantes';//exibe o texto na div
}

<textarea name="mensagem" rows="8" id="mensagem" onKeyUp="contarCaracteres()" onChange="contarCaracteres()"></textarea>
<div id="caracteres">20 restantes</div>

só vai na gambiarra mesmo

Edição feita por: _MX_, 18/07/2004, 11:45.

========================================================
Copiar o bom é melhor que inventar o ruim
========================================================
"O segredo da criatividade é saber esconder suas fontes"
(Einstein)
========================================================




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq