Foros del Web » Creando para Internet » HTML »

maxlength en textarea

Estas en el tema de maxlength en textarea en el foro de HTML en Foros del Web. Hola: ¿Como se controla la longitud máxima en un texarea, es decir, como se hace el mismo efecto que hace el maxlength de un input ...
  #1 (permalink)  
Antiguo 18/02/2003, 12:09
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 15 años
Puntos: 1
maxlength en textarea

Hola:

¿Como se controla la longitud máxima en un texarea, es decir, como se hace el mismo efecto que hace el maxlength de un input text?.

Muuchas gracias.
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #2 (permalink)  
Antiguo 18/02/2003, 12:25
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 9 meses
Puntos: 771
Hola,

Echa un vistazo a la FAQ-12 de JavaScript.

Saludos,
  #3 (permalink)  
Antiguo 18/02/2003, 12:44
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 15 años
Puntos: 1
Hola JavierB:

Lo primero, gracias por contestarme.

Te explico:

El contar el número de caractéres en una caja de texto se hacerlo.

Lo que quiero es limitar a un número de caractéres determinado la longitud del textarea. Es decir, si la limito a 100 caractéres, cuando el usuario los haya escrito, que no pueda escribir mas (como el maxlength de los input text).

Solo se me ha ocurrido que al ir contando, cuando se alcance el límite, provocar on blur, pero creo que puede haber mejores formas.

¿Se te ocurre algo?.

Muuuchas gracias.

__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #4 (permalink)  
Antiguo 18/02/2003, 13:01
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 9 meses
Puntos: 771
Hola de nuevo.

Espero orientarte mejor esta vez. En este Mensaje se habla del tema.

Por cierto, está muy bien tu avatar. Me recuerda los dibujos animados que veía de pequeño.

Saludos,
  #5 (permalink)  
Antiguo 18/02/2003, 13:10
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 15 años
Puntos: 1
MUUUUUUUUUUCHAS GRACIAS JavierB.

No se me había ocurrido el controlar que solo se pudiera usar la tecla de borrado en caso de estar lleno.

Sobre mi avatar, también gracias.

__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #6 (permalink)  
Antiguo 18/02/2003, 13:44
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 15 años
Puntos: 1
Perdona JavierB:

Se me olvidó antes.

Con tu función, existe el problema de que si el usuario en vez de teclear, hace un paste, permite que la longitud del texto sea superior al límite.

Estoy intentando hacer algunas cosillas para evitarlo.

__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #7 (permalink)  
Antiguo 18/02/2003, 14:51
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Salú

haz una cosa, fjmasero, llama también a la función en el evento onBlur en tu textarea
  #8 (permalink)  
Antiguo 18/02/2003, 19:34
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 15 años
Puntos: 1
Hola tunait:

Ya lo he probado, y nada.

Con la función de JavierB funciona bien si se teclea el texto, pero si se añade desde el portapapeles, no.

¿Ese añadir con el portapapeles no genera algún evento?.

Salu2.
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #9 (permalink)  
Antiguo 19/02/2003, 11:52
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 15 años
Puntos: 1
respuesta para todos

Bueno, después de vuestra ayuda, creo que he obtenido un método que funciona para controlar el que en un textarea se limite el número de caractéres que se pueden introducir, de una forma eficaz, incluso si se introduce el texto haciendo paste.

La función es:

<html>
<head>
<script language="JavaScript">
<!--
function maximaLongitud(texto,maxlong)
{
var tecla, int_value, out_value;

if (texto.value.length > maxlong)
{
/*con estas 3 sentencias se consigue que el texto se reduzca
al tamaño maximo permitido, sustituyendo lo que se haya
introducido, por los primeros caracteres hasta dicho limite*/
in_value = texto.value;
out_value = in_value.substring(0,maxlong);
texto.value = out_value;
alert("La longitud máxima es de " + maxlong + " caractéres");
return false;
}
return true;
}
//-->
</script>
</head>

<body>
<textarea onKeyUp="return maximaLongitud(this,10)"></textarea>
</body>

</html>

Como podéis ver, se usa una función llamada desde el evento onkeyup del textarea, lo que permite que después de pulsar cualquier tecla, estando en el textarea, se compruebe la función, y si el límite se supera, se "corta" el contenido.

Me gustaría que me informéis sobre las pegas que encontráis.

Gracias a todos.

__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #10 (permalink)  
Antiguo 09/02/2010, 17:35
 
Fecha de Ingreso: octubre-2009
Ubicación: Merida Yucatan
Mensajes: 93
Antigüedad: 8 años, 2 meses
Puntos: 2
Sonrisa Respuesta: maxlength en textarea

hola que tal. Tal vez respondo demasiado tarde pero tengo un código en javascript que te puede ayudar. Lo que hace esta pequeña funcion es:
Si Actual ( cantidad de caracteres que se ingresaron) es mayor a 255, los demas seran convertidos a espacios en blanco

function remplaza()
{
actual = document.getElementById("descripcion").value.lengt h;

if(actual>255){document.getElementById("descripcio n").value=document.getElementById("descripcion").v alue.substring(0,255);
}

}

<textarea name="descripcion" cols="30" onkeyup="remplaza();" rows="5" id="descripcion"></textarea>
  #11 (permalink)  
Antiguo 09/02/2010, 17:40
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 9.968
Antigüedad: 9 años, 8 meses
Puntos: 1314
Respuesta: maxlength en textarea

7 años, no es demasiado tarde, es obsenamente tarde

La próxima hazle caso al cartelito que dice que no revivas el tema.

Saludos
__________________
Grupo Telegram Docker en Español
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 20:56.