Foros del Web » Programando para Internet » Javascript »

Limitar caracteres en textarea

Estas en el tema de Limitar caracteres en textarea en el foro de Javascript en Foros del Web. Buenas, después de mucho buscar he decidido postear mi duda por si alguien lo ha hecho, me puede explicar como hacer. Quiero limitar un textarea ...
  #1 (permalink)  
Antiguo 14/02/2011, 10:05
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 8 meses
Puntos: 1
Pregunta Limitar caracteres en textarea

Buenas, después de mucho buscar he decidido postear mi duda por si alguien lo ha hecho, me puede explicar como hacer.
Quiero limitar un textarea pero de forma que al llegar al número máximo de caracteres no deje escribir más,es decir, que no escriba la última letra y luego la borre como hacen todos los scripts que hay por ahi, y si es posible que haga lo mismo cuando pegues un texto.

Un saludo y gracias.
  #2 (permalink)  
Antiguo 14/02/2011, 10:45
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 16 años, 5 meses
Puntos: 35
Respuesta: Limitar caracteres en textarea

Que uso le estás dando?
Debería usar un input text para limitar la cantidad de texto a ingresar.
El textarea está pensado para ingresar un volumen de datos significativo.
Sin embargo pudes hacerlo haciendo uso de js
http://www.forosdelweb.com/f4/textar...lenght-170948/
__________________
I am Doyle please insert code.
  #3 (permalink)  
Antiguo 14/02/2011, 10:50
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Limitar caracteres en textarea

Gracias, por la respuesta, pero este código no sirve, como bien he dicho no quiero que después de escribir me borre el caracter sino que ya no lo escriba.
Un saludo.
  #4 (permalink)  
Antiguo 16/02/2011, 17:34
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Limitar caracteres en textarea

Nadie sabe como hacerlo?¿
  #5 (permalink)  
Antiguo 17/02/2011, 13:33
 
Fecha de Ingreso: diciembre-2009
Ubicación: Valparaíso
Mensajes: 118
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Limitar caracteres en textarea

lo q tu quieres hacer (q no escriba +) no se puede hacer, si o si te borrará el último caracter, de lo contrario ocupa un textArea y lo limitas.

para q se ejecute la función se debe presionar una tecla y el script contara el nro de caracteres ya ingresados, x lo tanto ya habras impreso la letra.... lo unico q se me ocurre es q al llegar al nro de caracteres hagas un readonly o algo similar al textArea, pero esto hará q ya no se pueda editar
  #6 (permalink)  
Antiguo 17/02/2011, 14:28
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 10 meses
Puntos: 57
Respuesta: Limitar caracteres en textarea

Si se puede hacer lo que tu quieres. Depende del evento que utilices para limitar el numero de caracteres.
Si utilizas onkeypress, el caracter ya se habra impreso y entonces tendrias que borrar el caracter que se escribio (si ya se llego al limite).

Si utilizas el evento onkeydown, este se ejecuta ANTES de que se imprima el caracter. Tendrias que revisar si ya se llego al limite y si es asi, entonces regresar un false al evento (o hacer que el evento no se propague con stopPropagation() o cancelBubble() ). De lo contrario regresa un true para que el evento continue.

Un inconveniente de utilizar onkeydown es que al presionar cualquier tecla (incluso suprimir, retroceso, control, alt, etc) tambien se ejecuta el evento. Y si al revisar si el limite de caracteres ya se rebaso, entonces detendrias el evento incluso si presionaras suprimir para borrar algun caracter.

Trate de hacer lo que quieres como ejercicio pero me tuve que ocupar en otras cosas. Te dejo el codigo que escribi aunque creo que todavia no funciona al 100%

Código HTML:
Ver original
  1. var maximo = 5;
  2. function presionar(e) {
  3.     var t = document.getElementById("texto").value.length;
  4.  
  5.     document.getElementById("total").innerHTML = t;
  6.  
  7.     var re = /[\w\s_]/g;
  8.     if ( !re.test(String.fromCharCode(e.keyCode)) )
  9.         return true;
  10.  
  11.     if ( t < maximo )
  12.         return true;
  13.     else
  14.         return false;
  15. }
  16. </head>
  17. <body onload="document.getElementById('texto').focus()">
  18. <textarea id="texto" onkeydown="return presionar(event)" cols="50" rows="5"></textarea>
  19. <br />
  20. <span id="total"></span> caracteres
  21. <input type="button" value="Limpiar" onclick="document.getElementById('texto').value=''" />
  22. </body>

Última edición por posman; 17/02/2011 a las 14:34
  #7 (permalink)  
Antiguo 22/02/2011, 16:03
 
Fecha de Ingreso: diciembre-2009
Ubicación: Valparaíso
Mensajes: 118
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Limitar caracteres en textarea

Cita:
Iniciado por posman Ver Mensaje
Si utilizas el evento onkeydown, este se ejecuta ANTES de que se imprima el caracter.
No sabia eso, gracias.... q bueno es aprender algo nuevo todos los días
  #8 (permalink)  
Antiguo 24/02/2011, 04:32
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Limitar caracteres en textarea

Gracias por la respuesta, pero aún así no encuentro la ,manera de hacerlo funcionar 100%, y lo raro es que se utiliza en muchas herramientas web y el cdigo exacto no está por ningún lado.

Creo que es un tema interesante a tratar e incluso para añadir al faq de javascript.

Etiquetas: caracteres, limitar, textarea
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:26.