feed twitter facebook LinkedIn facebook

JavaScript » ¿Cuantos formularios hay en mi página?

Febrero 27, 2008 por Víctor Cuervo . 10421 visitas Sin Comentarios Imprimir Imprimir

Los formularios son los elementos HTML que nos permiten recoger información del usuario y enviarla a un servidor. Los formularios pueden contener elementos gráficos o simplemente contener la información para en envío de datos y permanecer ocultos.

Los formularios forman parte de la estructura de la página y por lo tanto del DOM. Esto nos abre la posibilidad de acceder a ellos, modificar su información,... y como en este ejemplo, simplemente conocer cuantos formularios componen nuestra página.

Continue reading ¿Cuantos formularios hay en mi página?...

JavaScript » Coordenadas del ratón con JavaScript

Febrero 10, 2008 por Víctor Cuervo . 11754 visitas 4 Comentarios Imprimir Imprimir

En este ejemplo vamos a ver como podemos conocer las coordenadas del ratón con JavaScript. Para ello, el ejemplo consistirá en volcar sobre dos campos de entrada de un formulario los valores de las coordenadas X,Y donde se encuentra posicionado el puntero del ratón.

Lo primero que hacemos es crear el formulario. Esto no debería de suponernos muchos problemas:

Continue reading Coordenadas del ratón con JavaScript...

JavaScript » Buscar en la lista

Febrero 4, 2008 por Víctor Cuervo . 11018 visitas 7 Comentarios Imprimir Imprimir

La idea de este ejemplo es realizar una búsqueda sobre un listado de datos (presente en una lista de un formulario) partiendo de una entrada que va el usuario tecleando paulatinamente. Por ejemplo si partimos del siguiente listado de deportes

'Atletismo ', 'Aerobic', 'Balonmano', 'Beisbol', 'Badminton', 'Baloncesto', 'Footing', 'Fútbol', 'Gimnasia', 'Voleibol'

Si el usuario teclea una A o a debería de filtrar por todos aquellos deportes que empiecen por dicha letra, quedándonos...

'Atletismo ','Aerobic'

si posteriormente el usuario teclea una E o e, se filtraría por aquellos deportes que empezasen por AE, quedándonos...

'Aerobic'

Continue reading Buscar en la lista...

wForms » Posicionar el lugar de error en wForms

Diciembre 11, 2007 por Víctor Cuervo . 7940 visitas Sin Comentarios Imprimir Imprimir

Si utilizamos wForms veremos que los mensajes de error siempre se posicionan debajo del campo del formulario que ha generado el error. Si bien, de una forma muy sencilla podremos definir donde queremos que salga el error.

Lo más normal es que el error se muestre cerca del campo que ha generado el error para, de esta forma, ayudar al usuario a localizar el campo y corregir el error. Si bien, en ciertos casos, piden a los programadores que los errores se sitúen en sitios insospechados.

Por ejemplo, si tenemos un formulario que pida un nombre y una edad, podríamos querer mostrar el error, siempre, en la parte inferior, entre el último campo y el botón de envío.

Continue reading Posicionar el lugar de error en wForms...

wForms » Personalizar mensajes de error en wForms

Diciembre 9, 2007 por Víctor Cuervo . 6938 visitas 1 Comentario Imprimir Imprimir

Si no configuramos nada de wForms, los mensajes tienen un comportamiento predeterminado. Este comportamiento es que los mensajes salen justamente debajo del elemento del formulario que ha generado el error y un popup que indica el número de errores que hay en total.

Además el texto de los mensajes es en inglés.

Pero mediante código JavaScript podemos personalizar el comportamiento de los mensajes de error. Para ello podemos alterar tres cosas:

Continue reading Personalizar mensajes de error en wForms...

wForms » Deshabilitar el popup de error en wForms

Diciembre 6, 2007 por Víctor Cuervo . 3459 visitas Sin Comentarios Imprimir Imprimir

Si habéis trabajado con wForms para las validaciones en formularios, habréis visto que por defecto, al realizar la validación muestra un popup con los errores que se han producido, o bien con el mensaje de error que le hayamos definido en la propiedad errMsg_notification.

Continue reading Deshabilitar el popup de error en wForms...

XForms » Borrado de campos en XForms

Noviembre 25, 2007 por Víctor Cuervo . 6348 visitas Sin Comentarios Imprimir Imprimir

Hace ya tiempo, cuando aprendí a construir formularios con HTML, me hacía mucha gracia que todos los formularios que veía por Internet tenían dos botones. El primero era el que realizaba el envío de la información, mientras que el segundo te borraba el contenido de todo el formulario.

Esta claro que no voy a cuestionar la utilidad de los dos botones, ya que útiles son. Pero quién no le ha dado al botón de borrar en vez de enviar, cuando realmente lo que quería era enviar y no borrar. Seguro que a todos nos ha pasado alguna vez y nos hemos visto en la tesitura de volver a introducir todos los datos.

En la especificación de XForms ¡han eliminado al componente “input type reset”¡..... Pero no del todo. La verdad es que ha dejado de ser un control y ha pasado a ser un “evento de interacción”..... ¿Cómo?

Intentare explicarlo... La idea es que los eventos de interacción sean los que correlacionen los eventos con el modelo de datos de XForms. Dentro de la categoría de eventos de interacción tenemos, además del "reset", "next" para cuando pasamos al siguiente control del formulario , "previous" cuando hacemos lo mismo, pero hacía atrás, "focus" para cuando queremos hacer foco en un determinado control,.....

Vale, pero yo quiero poner mi botón de toda la vida en el formulario,......

Lo primero que tenemos que hacer es construir un modelo de datos. Para este ejemplo tampoco nos vamos a inventar un mega-modelo. Hagamoslo sencillo:

  1. <model id="mipersona">
  2. <instance>
  3. <persona xmlns="">
  4. <nombre></nombre>
  5. <apellido></apellido>
  6. <edad></edad>
  7. <domicilio></domicilio>
  8. </persona>
  9. </instance>
  10. </model>

Si os dais cuenta, los campos del modelo están vacíos. Y es que el evento de interacción reset no borra los campos, sino que lo que hace es volver a poner en el formulario el modelo inicial.

Vamos con el siguiente paso, construyamos el formulario. Para ello nos basamos en dos componentes sencillos: input y textarea. De ellos solo tienes que darte cuenta que para hacer referencia a un campo del modelo usan el atributo ref. El código nos quedaría algo así:

  1.  
  2. <input ref="/persona/nombre">
  3. <label>Persona: </label>
  4. </input>
  5.  
  6. <h:br/>
  7. <input ref="/persona/apellido">
  8. <label>Apellido: </label>
  9. </input>
  10.  
  11. <h:br/>
  12. <input ref="/persona/edad">
  13. <label>Edad: </label>
  14. </input>
  15.  
  16. <h:br/>
  17.  
  18. <textarea ref="/persona/domicilio">
  19. <label>Domicilio: </label>
  20. </textarea>

Y ahora llega lo más importante.... Nuestro botón de borrado... Para poner un botón tenemos que usar el componente trigger.

Dentro de este componente es donde pondremos nuestro evento de interacción. La etiqueta del elemento es reset y como atributos tendremos dos: el evento que lo activa que será DOMActivate . El evento DOMActivate viene a reflejar la acción por defecto sobre un control, en nuestro caso pulsar el botón. En el caso de que fuese una caja de texto, la acción por defecto sería pulsar "Intro".

El segundo atributo del reset es el modelo que tiene que resetear. Ya que podemos tener varios modelos en nuestra página.....

  1.  
  2. <trigger>
  3. <label>Borrar</label>
  4. <reset ev:event="DOMActivate" model="mipersona"/>
  5. </trigger>

Bueno, al final, tampoco ha sido tan difícil....

XForms » Mi primer formulario XForms

Noviembre 24, 2007 por Víctor Cuervo . 9103 visitas 3 Comentarios Imprimir Imprimir

XForms, otra tecnología X*. Un amigo mío dice, en broma, que toda tecnología que evoluciona el W3C le pega la X. Ya lo hizo al evolucionar su HTML al XHTML, las Querys al XQuery y claro está los formularios (Form) a XForms. Vamos, que podríamos decir que estamos delante de una verdadera generación X.

¿Qué es XForms?

XForms como reza su página del W3C es “the next generation of web forms”.... la nueva generación de formularios web. Y es que los formularios HTML se nos habían quedado pequeños y había que acometer dos cosas sobre ellos:

  • Separar el modelo de datos del formulario y su diseño visual
  • Dotar de mayor potencia a los formularios: funciones de trabajo sobre ellos, nuevos componentes visuales,...

De las dos cosas mencionadas, la primera es la más importante. Separación de los datos de la presentación. Es por ello que se crea un conjunto de componentes visuales que pueden ser usados dentro de un documento XHTML o cualquier otro documento XML.

Por otro lado se define el concepto de instancia de datos. Esto es un modelo de datos que viene a reflejar la estructura de datos que se va a manejar. Estos datos son los que realmente se van a intercambiar.

Estas dos cosas: controles de formulario y la instancia de datos son ligados mediante un procesador XForms el cual define como se envía y recibe datos.

Mi primer formulario

Pongámonos manos a la obra y construyamos nuestro primer formulario basado en XForms. El movimiento se demuestra andando....Lo primero que tenemos que saber es que vamos a construir un documento XHTML.

  1. <h:html xmlns:h="http://www.w3.org/1999/xhtml">
  2. <h:head>
  3. <h:title>Mi primer formulario XForms</h:title>
  4. </h:head>
  5. <h:body>
  6.  
  7. ...
  8.  
  9. </h:body>
  10. </h:html>

Si os fijáis en el código. El namespace escogido en mi ejemplo para el XHTML> es h. Esto nos permitirá diferenciarlo de las etiquetas XForms.

Lo siguiente que tenemos que hacer es incluir el namespace de XForms. Este, está definido en http://www.w3.org/2002/xforms

  1. <h:html xmlns:h="http://www.w3.org/1999/xhtml"
  2. xmlns="http://www.w3.org/2002/xforms">

En nuestro ejemplo vamos a poner un formulario de búsqueda. No nos vamos a complicar más la vida. Dentro de este formulario pondremos dos campos de entrada de texto y un botón que lance la búsqueda.

Lo más interesante de los XForms es que HA DESAPARECIDO LA ETIQUETA FORM.

Para añadir los campos de entrada de texto tenemos el elemento input:

  1.  
  2. <input>
  3. <label>Nombre:</label>
  4. </input>
  5.  
  6. <h:br/>
  7. <input>
  8. <label>Apellido:</label>
  9. </input>
  10.  

Dentro de la etiqueta input podemos encontrar dos elementos

  • Label: Para indicar el nombre que se antepondrá al campo de entrada
  • Hint: Que es una etiqueta de texto emergente que nos servirá de aviso.

Para añadir el botón de búsqueda tendremos que trabajar con el elemento submit. Este elemento tiene asociado un atributo que es submission, el cual enlazará con una acción de envío.

  1. <submit submission="busqueda">
  2. <label>Buscar</label>
  3. </submit>

Enlazando el formulario con el modelo de datos

Como hemos dicho en la introducción. XForms separa los datos de la presentación. El modelo de dato se define dentro de la etiqueta model. Y un modelo contendrá una instancia del mismo (definida por el elemento instance), la cual contendrá los datos.

Veamos como quedaría nuestro formulario con el nombre y apellido como modelo:

  1. <model>
  2. <instance>
  3. <data xmlns="">
  4. <nombre>Victor</nombre>
  5. <apellido>Cuervo</apellido>
  6. </data>
  7. </instance>
  8. </model>

Si queremos hacer referencia a algún elemento del modelo desde los controles visuales lo haremos mediante el atributo ref. Así nuestros componentes visuales quedarían de la siguiente forma:

  1.  
  2. <input ref="nombre">
  3. <label>Nombre:</label>
  4. </input>
  5.  
  6. <h:br/>
  7. <input ref="apellido">
  8. <label>Apellido:</label>
  9. </input>
  10.  

Dentro del modelo también tendremos la acción desencadenada por el componente gráfico submit. El elemento que tiene la acción es submission.

<submission action="http://example.com/buscar" method="post" id="buscar"/>

Este elemento tiene múltiples atributos, pero entre ellos destacamos tres:

  • action, que define la URI donde se enviarán los datos.
  • method, que indica que tipo de protocolo se va a utilizar para la serialización de datos: post, get,...
  • id, identificador que lo hace único y que será usado por el elemento submit para identificar la acción de búsqueda a usar.

Visualizar nuestro trabajo: plug-in para Mozilla

Solo nos quedará por guardar nuestro ejemplo como .xhtml y probarlo.

Para probar el XForms con Mozilla y FireFox hay que descargarse un plug-in https://addons.mozilla.org/firefox/824/ que nos servirá para nuestros ejemplos.

Otros interpretes de XForms están disponibles en http://www.w3.org/MarkUp/Forms/#implementations

wForms » Validaciones personalizadas con wForms

Noviembre 20, 2007 por Víctor Cuervo . 4653 visitas 4 Comentarios Imprimir Imprimir

Junto con wForms vienen predefinidas las validaciones básicas: números, fechas, direcciones de email,... pero wForms también nos da la posibilidad de hacer validaciones personalizadas.

En nuestro ejemplo vamos a definir dos validaciones. La primera será la de un código postal. La validación comprobará que sea un dígito de 5 números. La segunda validación comprobará que el texto introducido sea M o F. Intentando representar el concepto de texto.

Continue reading Validaciones personalizadas con wForms...

wForms » Todos los campos del formulario obligatorios

Octubre 28, 2007 por Víctor Cuervo . 6375 visitas Sin Comentarios Imprimir Imprimir

De una forma muy sencilla y utilizando wForms haremos que un conjunto de campos de un formulario se conviertan en obligatorios.

En el artículo Campos obligatorios de un formulario con wForms podíamos ver como conseguir que un campo fuese obligatorio, indicándoselo directamente al campo. En este caso haremos que un conjunto de elementos de un formulario sean obligatorios.

Continue reading Todos los campos del formulario obligatorios...