miércoles, 23 de octubre de 2013

Contador de caracteres en un textarea


Contador de caracteres en un textarea


Aqui encontre un codigo que les puede ser de utilidad para los que necesiten hacer un formulario o algo similar.
Se trata de controlar el tamaño del texto que se escribe en un textarea para evitar que los caracteres escritos sobrepasen de los permitidos. El control de los caracteres escritos se hace con Javascript, dinámicamente en el lado del cliente, de modo que cuando el usuario llega a la longitud permitida, no se permite escribir más contenido en el campo textarea. 

<html>
<head>
<script>
contenido_textarea = ""
num_caracteres_permitidos = 10

function valida_longitud(){
   num_caracteres = document.forms[0].cuerpo.value.length

   if (num_caracteres > num_caracteres_permitidos){
      document.forms[0].cuerpo.value = contenido_textarea
   }else{
      contenido_textarea = document.forms[0].cuerpo.value
   }

   if (num_caracteres >= num_caracteres_permitidos){
      document.forms[0].caracteres.style.color="#ff0000";
   }else{
      document.forms[0].caracteres.style.color="#000000";
   }

   cuenta()
}
function cuenta(){
   document.forms[0].caracteres.value=document.forms[0].cuerpo.value.length
}
</script>
</head>

<body>
<form action="#" method="post">
<table>
<tr>
   <td>Texto:</td>
   <td><textarea cols="40" rows="5" name="cuerpo" onKeyDown="valida_longitud()" onKeyUp="valida_longitud()"></textarea></td>
</tr>
<tr>
   <td>Caracteres:<br/>max 10</td>
   <td><input type="text" name=caracteres size=4></td>
</tr>
</table>
</form>

</body>



</html>




No tiene ninguna complicación. Pero hay que prestar atención a los eventos del textarea, que son onKeyDown y onKeyUp, que se desatan cuando el usuario aprieta o suelta teclas del teclado. En ambos eventos se llama a la función javascript valida_longitud(), que se encargará de hacer todo el trabajo.



Los campos que deben de tener en cuenta son:



contenido_textarea = ""
num_caracteres_permitidos = 10



el primero esta vacio, ya que se supone que el contenido al comenzar este asi, el segundo es el numero de caracteres permitidos.


Para ver mejor el ejemplo les dejo una demo






Espero que les sea de utilidad.

Hasta la Proxima.