Contador de palabras

Algo que puede resultar bastante útil a la hora de crear un formulario con campos de texto abiertos, es limitar la posibilidad de escribir indefinidamente. Para esto, como para casi todo, hay varias opciones. Una de ellas, la más rápida y sencilla sería limitar el campo de texto a un número de caracteres determinado. Para ello vamos a la ventana Objeto, dentro de la pestaña Campo, seleccionamos la casilla «Limitar longitud a área visible»«Limitar longitud» y especificamos el número máximo de caracteres que vayamos a permitir escribir dentro de ese campo.

ventana-limitar

La otra opción es crear una referencia visual del número de caracteres que le quedan por escribir. En este ejemplo, os explico cómo hacer un campo en el que, al salir del campo de texto en el que se está escribiendo o al hacer click en un botón, aparezca una referencia del número de caracteres que quedan para llegar al máximo permitido o aconsejado. También le vamos a añadir un mensaje emergente que avise cuando se ha superado el límite de caracteres y una función para que no deje enviar el formulario por correo electrónico si se ha superado ese límite. Para todo esto vamos a usar Scripts en lenguaje FormCalc, que es el propio de Adobe Designer. Podría ser en JavaScript, pero no es el que uso yo para este ejemplo. También podría actualizarse el número de caracteres restantes al tiempo que se va escribiendo, pero todavía no sé cómo se hace. Os explico lo que hago, y lo que sé.

Dos ejemplos de contador de palabras 

Dos ejemplos de contador de palabras

 

Y su vista en PDF 

Y su vista en PDF

Para este ejemplo, insertamos en el formulario un botón y dos campos numéricos. El botón lo arrastraremos de la biblioteca estándar y no habrá que hacerle nada, salvo cambiar el nombre «botón» por el que queramos; en el ejemplo «caracteres restantes» o «caracteres aproximados». No habrá que incluirle ninguna función, ni ningún script, porque el número de caracteres restantes nos va a aparecer simplemente con salir del campo en el que estamos escribiendo.

El primero de los campos numéricos, que dejaremos visible, será en el que aparezca la referencia al número de caracteres restantes. A este campo le pondremos el nombre que queramos en la Ventana Objeto/Enlace/Nombre; por ejemplo «caracteres». Dentro de la ventana del Editor de secuencias de comandos, en «calculate» escribimos el siguiente script de FormCalc:

 

----- Formulario1.#subform[0].caracteres[0]::calculate: - (FormCalc, cliente) ----------------------
var longitud=Len(CampoTexto1);
caracteres=Sum(-longitud, 10)

Aquí tendremos que sustituir «CampoTexto1» por el nombre del campo al que va a hacer referencia el contador. «Caracteres» es el campo numérico donde va a aparecer la referencia. Y hay que sustituir el «10» por el número de caracteres máximo que queremos que se escriba en el campo de texto.

En el otro campo numérico escribiremos este script:

----- Formulario1.#subform[0].seguridad[0]::calculate: - (FormCalc, cliente) -----------------------

if (caracteres<0) then seguridad=100

else seguridad=1

endif

Donde le damos las instrucciones para que impida el envío por correo electrónico si se ha superado el número máximo de caracteres. Para incluir un mensaje emergente que notifique del exceso de caracteres lo haremos mediante la Ventana Objeto/Valor, con las opciones de la imagen.

mensajecaracteres

El mensaje podrá ser personalizado. Para terminar, pondremos este campo invisible para que no se vean elementos extra innecesarios dentro del formulario.

~ por dmartinr en noviembre 19, 2008.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: