Mundo Web
manuales - recursos - gráficos - programación...

Home - Articulos JavaScript - Caminando entre formularios - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8

CAMINANDO ENTRE FORMULARIOS (V)
por Luciano Moreno, del departamento de diseño web de BJS Software.

El objeto TEXTAREA.-

El objeto textarea inicialmente admite el mismo tratamiento que el objeto text, sus mismas propiedades, métodos y eventos. Pero además posee una serie de características propias originadas por su propia definición.

La apariencia del elemento textarea dentro de un formulario es la de una caja de texto de anchura y altura determinada, que posee  scrolls o barras de desplazamiento propias para poder navegar por su interior. Su sintaxis dentro de un formulario es del tipo:

<textarea name="comentario" cols="20" rows="5"></textarea>

que como vemos lleva etiqueta de cierre, apareciendo inicialmente en la caja el texto que escribamos entre las etiquetas de apertura y cierre, y cuya apariencia en el navegador es la siguiente:

Las principales propiedades de este objeto son:

El objeto textarea posee los siguientes métodos:

Por otra parte, estos objetos poseen los siguientes eventos:

Vamos a ver un ejemplo parecido al primero de este capítulo, en el que vamos a permitir un máximo de caracteres en el textarea, y además vamos a mostrar al usuario el nº máximo de ellos que le van quedando para poner, es decir, vamos a implementar un contador de cuenta atrás. Vamos a ver el código y luego lo explicamos:

<html>
<head> 
<SCRIPT language="JavaScript" type="text/javascript">

function contador (campo, cuentacampo, limite) {
if (campo.value.length > limite) campo.value = campo.value.substring(0, limite);
else cuentacampo.value = limite - campo.value.length;
}

</script>
</head>
<body>
<center>
<form name="form1">
sólo puedes entrar 125 caracteres.
<textarea name="mensaje" wrap=physical cols="28" rows="4" onKeyDown="contador(this.form.mensaje,this.form.remLen,125);" onKeyUp="contador(this.form.mensaje,this.form.remLen,125);"></textarea>
<input type="text" name="remLen" size="3" maxlength="3" value="125" readonly>te quedan todavía
</form>
</center>
</body>
</html>

Vamos a definir la función contador, que va a manejar 3 parámetros, que van a ser:

1) campo: representa al textarea sobre el que queremos que actúe la función, que se corresponde en el ejemplo con this.form.mensaje.

2) cuentacampo : que representa la caja de texto en la que vamos a colocar el contador de cuenta atrás, representada en nuestro formulario por this.form.remLen.

3) limite : que va a determinar el nº máximo de caracteres que vamos a permitir en el textarea.

Las instrucciones que le damos a la función son:

a) if (campo.value.length > limite) campo.value = campo.value.substring(0, limite); este código es una condición que le dice a la función que si el la longitud de la propiedad value del campo que le pasemos como primer argumento ( es decir, el número de caracteres introducido en el textarea) es mayor que el límite pasado como tercer argumento, entonces sólo debe tomar los caracteres comprendidos entre el primero (0) y el marcado por el límite (125), con lo que aunque escriba el usuario más de 125 sólo se considerarán los 125 primeros. Esta instrucción sólo maneja pués el caso de que haya más de 125 caracteres, y no actúa para nada con el contador de cuenta atrás.

2) else cuentacampo.value = limite - campo.value.length; que trata el caso en que todavía no se superen los 125 caracteres en el textarea, y le dice a la función que en ese caso el valor que aparezca en el campo que le pasemos como argumento cuentacampo, que en nuestro caso corresponde a la caja de texto remLen, debe ser igual al valor del límite establecido menos el nñumero de caracteres que haya introducidos en el textarea, con lo que consegimos el efecto de cuenta atrás.

Ahora bien, para que la función actúe dinámicamente debemos llamarla cada vez que el usuario pulse una tecla al introducir un caracter en el textarea, y también cuando la tecla ha sido pulsada, para que no nos pasemos del límite de 125 caracteres establecido. Por eso llamamos a la función mediante los eventos onKeyDown y onKeyUp, es decir, cada vez que el usuario pulsa o suelta una pieza del teclado.

 

anterior
siguiente

Home - Articulos JavaScript - Caminando entre formularios - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8