Problemas con javascript

Hola! Estoy haciendo una pequeña función con javascript para limitar el número de caracteres que se puedan escribir en un textarea, y que a partir de ahí, no deje escribir nada más. El código es el siguiente:
contenido_textarea="";
function valida_longitud(num_caracteres_permitidos, formu, texto){
num_caracteres = document.formu.texto.value.length;
if (num_caracteres <= num_caracteres_permitidos){
contenido_textarea = document.formu.texto.value ;
}else{
document.formu.texto.value = contenido_textarea;
}
}
Donde formu y texto son cadenas. Sé dónde está el problema, pero no sé la solución, he estado buscando en internet pero nada me ha ayudado... Y estoy un poco desesperada. El problema es que al ejecutar el código, se confunde el nombre de la variablef formu o texto con su valor, y lo interpreta como si fuera una constante... No sé si me explico. Por ejemplo, si formu valiera "formulario" creo que en la línea contenido_textarea = document.formu.texto.value ; formu no se sustituye por "formulario" sino que se pone formu directamente, y por eso me da error. A lo mejor me estoy confundiendo, pero estoy casi segura de que el error está ahí, ya que si sustituyo las variables por sus valores respectivos, funciona de maravilla.
Yo no sé si me habré explicado muy bien... Sino pida aclaración por favor. El archivo .php desde donde llamo a la función es el siguiente:
...
<script language="javascript" src="js/longtextarea.js"> </script>
.....
<form method="post" name="formulario" action="controlcoment.php" >
<textarea name="comenta" cols="75" onclick="formulario.comenta.value=''" rows="10" onkeydown="valida_longitud(4, 'formulario', 'comenta')"onkeyup="valida_longitud(4, 'formulario', 'comenta')"> Pon tu comentario aquí...</textarea>
<input type="hidden" name="ID" value="<? Echo $_GET["ID"];?>" />
<input type="submit" value="Comentar" />
</form>
Gracias por la ayuda que me pueda prestar! Un saludo!
1

1 Respuesta

28.475 pts. Analista de sistemas y Programador en:...
Te recomiendo que cuando hagas la llamada lo puedes hacer así y su respectiva posible solución:
function valida_longitud(textoarea,maximalongitud)
{
var tecla, int_value, out_value;
if (textoarea.value.length > maximalongitud){

in_value = textoarea.value;
out_value = in_value.substring(0,maximalongitud);
textoarea.value = out_value;
alert("La longitud máxima es de " + maximalongitud + " caractéres");
return false;
}
return true;
}
En tu textarea:
<textarea name="comenta" cols="75" onclick="formulario.comenta.value=''" rows="10" onKeyUp="return valida_longitud(this,10)"> Pon tu comentario aqu&iacute;...</textarea>
Lo que esto realizará es que si te pasas de la longitud aparecerá un mensaje de alerta y no te dejará escribir más.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas