Jump to content


Photo

Javascript Para Contar Grupo De Textareas


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

#1 O Cabeção

O Cabeção

    Novato no fórum

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

Posted 13/03/2007, 16:02

Pessoal, preciso de uma ajuda para contar caracteres de um grupo de textareas. São vários textareas e deve aparecer o número de caracteres digitados e o restante a digitar, mas o total de caracteres deve ser a soma dos caracteres de todos os textareas juntos.

Estava tentando modificar o código abaixo, porém se utilizar mais de um textarea, ele reinicia o contador.

<HTML> 
<HEAD> 
<TITLE></TITLE>

&lt;script LANGUAGE=javascript> 
function max(txarea) { 

total = 100;
tam = txarea.value.length; 
str=""; 
str=str+tam; 
Digitado.innerHTML = str; 
Restante.innerHTML = total - str; 

if (tam > total){ 
  aux = txarea.value; 
  txarea.value = aux.substring(0,total); 
  Digitado.innerHTML = total 
  Restante.innerHTML = 0 
  }
} 

</SCRIPT>
</HEAD> 
<BODY> 
  <table> 
	<tr> 
	  <td> 
		<form name="form1">
		  <textarea onkeyup="max(this)" onkeypress="max(this)" rows="2" cols="35" name="Area"></textarea><br>
		  <textarea onkeyup="max(this)" onkeypress="max(this)" rows="2" cols="35" name="Area"></textarea><br>
		  <textarea onkeyup="max(this)" onkeypress="max(this)" rows="2" cols="35" name="Area"></textarea><br>
		  <font id=Digitado color=red>0</font> Caracteres digitados   /   restam <font id=Restante color=red>100</font><br>
		</form>
	  </td> 
	</tr> 
  </table> 
</BODY>
</HTML>

Agradeço desde já qualquer ajuda... é urgente!

#2 matt.cavotta

matt.cavotta

    Ativo

  • Usuários
  • 347 posts
  • Sexo:Masculino
  • Localidade:Campinas
  • Interesses:Desenvolvimento Web &amp; Programação

Posted 13/03/2007, 20:57

Adaptei o código para múltiplos textareas. O código segue extensamente comentado:

<HTML>
<HEAD>
<TITLE></TITLE>

&lt;script LANGUAGE=javascript>

/*
   seta os valores iniciais ao carregar
   a pagina
*/
function inicia (){
/* maximo de caracteres permitidos */
total = 100
}

function max(txtarea) {

/* 
   vamos calcular a soma dos tamanhos de todos 
   os textareas
*/
tam = 0
/* retorna uma lista com todos os elementos com name='Area' */
lista = document.getElementsByName('Area')
for (i=0; i<lista.length; i++)
  tam += lista[i].value.length

/*
  colocar isso antes, evita que seja mostrado um 
  valor negativo :)
*/
if (tam > total){

  /* quantos caracteres precisamos remover? */
  toRemove = tam - total

  /*	  tamanho do texto atual	 */
  len = txtarea.value.length
  
  txtarea.value = txtarea.value.substring(0,len-toRemove);

  /* ajusta para nao dar negativo */
  tam = total;
}

Digitado.innerHTML = tam
Restante.innerHTML = total - tam

}

</SCRIPT>
</HEAD>
<BODY onload='inicia()'>
  <table>
	<tr>
	  <td>
		<form name="form1">
		  <textarea onkeyup="max(this)" onkeypress="max(this)" rows="2" cols="35" name="Area"></textarea><br>
		  <textarea onkeyup="max(this)" onkeypress="max(this)" rows="2" cols="35" name="Area"></textarea><br>
		  <textarea onkeyup="max(this)" onkeypress="max(this)" rows="2" cols="35" name="Area"></textarea><br>
		  <font id=Digitado color=red>0</font> Caracteres digitados   /   restam <font id=Restante color=red>100</font><br>
		</form>
	  </td>
	</tr>
  </table>
</BODY>
</HTML>

WebFórum - Equipe de Desenvolvimento - Estagiario

I'm back!
Posted Image Edgy Eft 7.04

#3 O Cabeção

O Cabeção

    Novato no fórum

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

Posted 14/03/2007, 10:30

O código funcionou perfeitamente, exatamente como eu queria!!! Muito obrigado pela ajuda!!!!

:lol: Valeu!!!




0 user(s) are reading this topic

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

IPB Skin By Virteq