SlideShare una empresa de Scribd logo
1 de 58
Descargar para leer sin conexión
Didier Fabián Granados Muñoz

Sesión No. 3 – Formularios y Validaciones
Agosto 19 de 2009
Comando   Descripción

GET       Solicita el recurso ubicado en la URL especificada y
          envía datos en la misma.
HEAD      Solicita el encabezado del recurso ubicado en la
          URL especificada.
POST      Envía datos al programa ubicado en la URL
          especificada, generalmente mediante formularios.
PUT       Envía datos a la URL especificada.
DELETE    Borra el recurso ubicado en la URL especificada.
Los formularios son una
utilidad necesaria para que
los documentos descritos
con HTML dispongan de un
medio para que el lector o
visitante pueda remitir
información personalizada al
servidor, creándose, de esta
forma, un sistema completo
de interacción con el mismo.
   Un buen número de opciones…


       Cajas de texto
       Contraseñas
       Campos ocultos
       Casillas de verificación
       Botones de selección
       Botones
       Imágenes
       Áreas de texto
       Listas
Y ésta es la estructura básica de un documento HTML…


 <html>


 <head>
 Otras etiquetas...
 </head>

                                      Y en esta región
 <body>                               del documento
 Contenido de la página...            HTML es que
 </body>                              debemos insertar
                                      el formulario.
 </html>
<form action="acción" method="MétodoTransmisión">

      Aquí van los objetos del Formulario

</form>
Elementos INPUT



 <input
 type="text|password|checkbox|radio|submit|reset|file|
 hidden|image" [id="identificador"]
         [size="tamaño"]
         [value="valor"]
         [checked="checked"]
         [maxlength="LongitudMáxima"]
         [name="NombreDeCampo"]
         [align="top|middle|bottom|left|right"]
         [src="UrlDeLaImagen"]
 />
Elemento TEXTAREA



 <textarea name="nombre" [cols="columnas"]
 [rows="filas"] [align="alineación"]>
 Texto Inicial, no es necesario
 </textarea>
Elemento SELECT (Listas)




<select name="NombreLista" [size="valor"]
[align="alineación"] [width="valor"] [height="valor"]
[multiple="multiple"]>
<option [selected="selected"]>Texto de la opción</option>
...
</select>
   Ya sabemos para qué sirve un formulario…
   Ya sabemos que cada campo se comporta de manera similar o
    diferente según los atributos especificados y sus valores.
   Ya sabemos que podemos enviar datos al servidor y las diferencias
    entre GET y POST…
   Pero… ¿Cómo podemos garantizar un buen manejo del
    formulario?
      No meter textos muy largos…
      Que un campo específico sólo reciba números… o sólo letras…
      Que no me pueda pasar de cierto valor…
      Que se pueda deshabilitar o habilitar un campo, según sea el
       caso…
      Que el formulario no envíe si alguna de las condiciones
       anteriores no se cumple…
 Es esencialmente una interfaz de programación de
  aplicaciones Web que proporciona un conjunto
  estándar de objetos para representar documentos
  HTML y XML, un modelo estándar sobre cómo
  pueden combinarse dichos objetos, y una interfaz
  estándar para acceder a ellos y manipularlos.


 A través del DOM, los programas pueden acceder y
  modificar el contenido, estructura y estilo de los
  documentos HTML y XML, que es para lo que se
  diseñó principalmente.
 Primera vez: Navegador Netscape 2.0
    Modelo básico o el DOM de Nivel 0.
    IE 3.0 fue el primer navegador de Microsoft que utilizó
       este nivel.
      Netscape 3.0 empezó a utilizar rollovers.
      Microsoft empezó a usar rollovers en IE 4.0.
      Netscape 4.0 agregó la capacidad de detectar eventos
       ocurridos en el ratón y el teclado.
      En IE 4.0 todos los elementos de una página web se
       empezaron a considerar objetos computacionales con la
       capacidad de ser modificados.
 Octubre de 1998: DOM Nivel 1.
    Por diferencias en estos navegadores.
    Se consideraron las características y manipulación de
     todos los elementos existentes en los archivos HTML y
     XML.
 Noviembre de 2000: DOM Nivel 2.
    Se incluyó la manipulación de eventos en el navegador,
     la capacidad de interacción con CSS, y la manipulación
     de partes del texto en las páginas de la web.
 Abril de 2004: DOM Nivel 3.
    Utiliza la DTD (definición del tipo de documento) y la
     validación de documentos.
 Guerra entre navegadores.
    Netscape Navigator (y/o Mozilla Firefox) vs Internet
       Explorer…
      Navegadores de otras compañías...
      Crean graves problemas para los programadores de
       páginas web.
      Los objetos no se comportan de la misma forma, lo que
       obliga con frecuencia a programar las páginas en más
       de una versión, una para el Netscape, o Firefox, otra para
       Internet Explorer, otra para Safari, Opera, etc.
      En suma, no todas las versiones de un mismo navegador
       se comportan igual.
 El W3C, el consorcio encargado de definir los estándares de
  la web, decidió crear un modelo de objetos único, el DOM,
  para que todos los fabricantes pudieran adoptarlo,
  facilitando la compatibilidad plena entre ellos.
 No obstante, Microsoft ha añadido su propia extensión al
  DOM, creando problemas de interoperabilidad para los
  navegadores web.
 Esto cambiará sólo si nuevos navegadores que respeten los
  estándares ganan una cuota de mercado significativa en la
  web, de forma que el uso de extensiones no estándares se
  convierta en un problema comercial para los autores de los
  sitios web que las usen.
 DOM según la W3C
    http://www.w3.org/DOM/


 DOM en Mozilla
    http://www.mozilla.org/docs/dom/domref/


 Especificación DOM Nivel 1
    http://html.conclase.net/w3c/dom1-es/cover.html
   Los formularios de una determinada página web forman una
    colección de objetos: forms. Esta colección está incluida en el
    objeto document, por lo que podemos referirnos a un determinado
    formulario de tres formas:

    1.   Por su índice en la colección forms, es decir, el índice que indica su
         posición en la página. En este caso, document.forms[0], nombraría el
         primer formulario de la página.
    2.   Indizado por su nombre (dado por el atributo name de la directiva
         <form>). Así, document.forms['forma1'] se referirá al formulario
         iniciado por <form name="forma1" ...>
    3.   Nombrándolo directamente por su identificador único, dado por el
         atributo id de la directiva <form>. De este modo, cuando se dice
         document.FormularioPropio, se refiere al formulario identificado por
         <form name="forma2" id="FormularioPropio" ...>.
window


window.history
history
window.document
document



document.forms[0]
<input
   type="text|password|checkbox|radio|submit|reset|file|
   hidden|image" [id="identificador"]
           [size="tamaño"]
           [value="valor"]
           [checked="checked"]
           [maxlength="LongitudMáxima"]
           [name="NombreDeCampo"]
           [align="top|middle|bottom|left|right"]
           [src="UrlDeLaImagen"]
   />



 Por muy opcionales que sean, el papel exacto que lo
  atributos name y id juegan en la nominación de los
  formularios en la colección forms depende del navegador
  y entorno
Los elementos


   Dependiendo de cada objeto form depende una colección de
    objetos: element, que contiene los objetos que representan cada
    uno de los elementos que contiene el formulario.
   Los objetos de estas colecciones se referencian de igual forma que
    los formularios, es decir:
      A través de un índice que indica su posición en el formulario.
      Mediante la etiqueta name o el atributo id.
   Pero siempre se ha de tener en cuenta que cada formulario
    contiene una colección de elementos y que los mismos se
    referencias o indizan de acuerdo a la mismas.
Los elementos


Así:


   document.forms[2].element[3], representa el cuarto elemento del
    tercer formulario de la página.


   document.forms[´forma1'].EntradaTexto representa un elemento
    con el atributo id="EntradaTexto" en el formulario <form
    name="forma1" ...>.
   Los objetos form como los objetos element tienen una serie de
    propiedades que los definen y que, así mismo, establezcan su
    comportamiento.


   Algunas de esas propiedades serán de lectura y escritura y los
    procedimientos JavaScript podrán leer su valor o cambiarlo,
    mientras que en otros casos solo podrán leer el valor sin posibilidad
    de actualizarlo.


   Los objetos responderán a una serie de métodos que permitirán
    actuar sobre los mismos y podrán responder a unos eventos que
    permitirán definir el comportamiento de los mismos frente a
    actuaciones de entorno y del usuario.
   Es un lenguaje de programación interpretado, es decir, que no
    requiere compilación.
   Es utilizado principalmente en páginas web.
   No confundir, no tiene nada que ver con Java… pero tiene una
    sintaxis semejante, aunque también se asemeja al lenguaje C.
   Todos los navegadores modernos interpretan el código JavaScript
    integrado dentro de las páginas web. Por tanto, es una tecnología
    del lado del cliente.
   Para interactuar con una página web se provee al lenguaje
    JavaScript de una implementación del DOM.
   Inicialmente lo llamaron Mocha y más tarde LiveScript pero fue
    rebautizado como JavaScript en un anuncio conjunto entre Sun
    Microsystems y Netscape, el 4 de diciembre de 1995.
   En 1997 los autores propusieron JavaScript para que fuera
    adoptado como estándar de la European Computer Manufacturers'
    Association ECMA, que a pesar de su nombre no es europeo sino
    internacional, con sede en Ginebra. En junio de 1997 fue adoptado
    como un estándar ECMA, con el nombre de ECMAScript. Poco
    después también lo fue como un estándar ISO.
   JScript es la implementación de ECMAScript de Microsoft, muy
    similar al JavaScript de Netscape, pero con ciertas diferencias en
    el modelo de objetos del navegador que hacen a ambas
    versiones con frecuencia incompatibles.
   Para evitar estas incompatibilidades, la W3C (World Wide Web
    Consortium) diseñó el estándar DOM…
   Lo incorporan los navegadores Konqueror, las versiones 6 de
    Internet Explorer (en teoría) y Netscape Navigator, Opera 7, y
    Mozilla desde su primera versión.
Referencia


 Javascript se puede incluir en cualquier documento y es
  compatible con cualquier sistema operativo, o todo aquel
  que termine traduciéndose en HTML en el navegador del
  cliente.
 Bastará con escribir en el documento HTML:



  <script type="text/javascript" src="[URL]">
  </script>
Referencia


 También es posible incluir código directamente en el
  documento entre los elementos <script> y </script>,
  aunque no se recomienda por ser una práctica invasiva:



  <script type="text/javascript">
  <!--
     // código JavaScript
  -->
  </script>
   Los objetos responderán a una serie de métodos que permitirán
    actuar sobre los mismos y podrán responder a unos eventos que
    permitirán definir el comportamiento de los mismos frente a
    actuaciones de entorno y del usuario:


     Propiedades como value, size, selected, checked...
     Métodos como click, scrollIntoView, focus, ...
     Manejadores de eventos como onClick, onChange,
      onMouseOver...
     A los que se añadirán las propiedades y métodos propios de las
      colecciones: add, remove, length...
   No importa su tipo.
   Se puede acceder a ellos por su nombre:

      <input type="text" name="texto" />

           document.forms[0].texto;



   O de manera más global, por su id, ya que este es único en el
    documento HTML:

      <input type="text" id="campoTexto" />

           document.getElementById("texto");
Manejador     Descripción
onmouseover   Cuando se pone el cursor sobre el elemento.
onmouseout    Cuando se quita el cursor del elemento.
onfocus       Cuando el cursor está dentro de un campo o lo mantiene activo.
onblur        Cuando el cursor sale del campo o deja de seleccionarlo.
onchange      Cuando hay algún cambio en el valor del campo.
onmousemove   Cuando el mouse se está moviendo sobre el elemento.
onsubmit      Cuando se envía un formulario.
onkeypress    Cuando se presiona una tecla.
onkeyup       Cuando una tecla deja de ser presionada.
onkeydown     Cuando la tecla está siendo presionada.
onload        Cuando carga la página.
onclick       Cuando se hace clic sobre el objeto.
ondblclick    Cuando se hace doble clic sobre el objeto.
   La propiedad value es la más utilizada en su manejo, tanto para leer
    el valor en los mismos contenido o actualizarle dinámicamente.


     <input type="text" name="texto" id="campoTexto"
     size="20" value="Texto" />




document.forms[0].texto.value
document.getElementById("campoTexto").value                     Texto


   Se ha de tener en cuenta que el valor obtenido a partir de la
    propiedad value es un string y su conversión a valor numérico, de
    ser necesaria, se ha de realizar llamando al método parseInt() de
    JavaScript, u otro similar.
   La validación del contenido de los campos de texto y contraseña se
    puede realizar en tres niveles y su correcto uso facilitará en gran
    manera la utilización de los formularios web y aumentará la eficacia
    de los mismos. Las tres formas de validación son:


     A nivel de entrada
      Capturando las teclas pulsadas por el usuario.
     A nivel de salida
      Cuando el usuario abandona el campo (pierde el foco) por
      activar otro campo.
     A nivel de envío
      Antes de proceder a la remisión de contenidos al receptor de los
      datos del formulario.


   Ver ejemplos 1 y 2.
   Al igual que el resto de controles de los formularios es posible
    referirse a las mismas de dos formas:
     1. A través de la colección elements:
        document.forms[0].elements[1].checked = true;
     2. O con un nombre propio establecido con el atributo name de la
        directiva input:
        document.forms[0].elCheckbox.checked = true;


   En cualquier caso, el manejo de estos controles se reduce al manejo
    de la propiedad checked, la cual contiene un valor true o false
    dependiendo de si la casilla está activada o apagada. Esta
    propiedad es de lectura y escritura, con lo que es posible cambiar el
    estado del control de forma dinámica.


   Ver ejemplo 3.
   Los botones de radio son tratados como una colección cuando
    tienen el mismo nombre.
   Es posible referirse a ellos de las siguientes dos formas:
    1. A través de la colección elements:
       document.forms[0].elements[1][2].checked = true;
    2. O con un nombre propio establecido con el atributo name de la
       directiva input:
       document.forms[0].elRadio[2].checked = true;
   Aquí también existe el manejo de la propiedad checked, la cual
    contiene un valor true o false dependiendo de si el botón está
    activado o apagado, pero sólo un botón del grupo puede tener
    dicha característica en un tiempo determinado.


   Ver ejemplo 4.
   Cada lista no vacía de un formulario tiene una colección de
    opciones, llamada options, que identifica a cada uno de los valores
    dispuestos en la misma, y cada uno de los elementos de ésta
    colección disponen de una propiedad que es reflejo del texto y/o
    valor que esta en la directiva <option>.
   Si el formulario tiene por nombre forma, y la lista se llama lista,
    document.forma.lista.options[0].text identifica el texto que tiene
    la primera opción de dicha lista.
   La propiedad selectedIndex de las listas permite conocer cual es
    elemento seleccionado en cada momento, esta propiedad toma el
    valor, entre 0 y document.forma.lista.options.length - 1, que nos
    servirá como índice para trabajar con la colección options.
   Ver ejemplo 5.
   La principal diferencia con las listas de selección única radica en el
    hecho de que la propiedad selectedIndex de la lista no es muy
    utilizable, ya que solo retornaría el índice del primer valor
    seleccionado.
   Si se quiere conocer los índices de todas las opciones seleccionadas
    será necesario recorrer la colección options (de manera similar a los
    botones de radio, solo que en este caso sí podemos tener más de
    una opción a la vez) y comprobar uno por uno su estado
    consultando la propiedad selected.
   Ver ejemplo 6.
   En los formularios puede existir un botón que permite el envio de
    los contenidos del mismo al destino fijado en el atributo action de
    la directiva <form>.
   Este botón es un campo input del tipo submit.
   Generalmente su valor es "Enviar“.
   La pulsación de este botón produce el envío del formulario, y al
    mismo tiempo se produce un evento onsubmit, que puede ser
    tratado con un manejador de evento colocado en la directiva
    <form>.
   Las expresiones JavaScript colocadas en el manejador del evento
    onsubmit son ejecutadas antes de proceder al envío. Si el resultado
    de dichas expresiones, como el valor retornado por una función, es
    true, el envío se produce sin más, pero si ese valor retornado es
    false, el envío se cancela.
   Ver ejemplo 7.
La verificación de los datos introducidos por el usuario en el lado del
cliente, en la propia página HTML en la que figura el formulario tiene
importantes ventajas:


 Se disminuye el trafico de la red, ya que los errores no significan la
  transmisión de información a través de la misma.
 Al poder validar campo a campo el usuario puede ver la
  consecuencia de sus acciones instantáneamente y la validación se
  hace más ágil
 El servidor es descargado de ciertos trabajos, lo cual en servidores
  con gran carga de atención a muchos clientes puede ser de gran
  interés.
 La validación puede tener en cuenta el entorno del cliente.
Este proceso tiene algunas desventajas que es necesario tener muy en
cuenta:


 Si la validación implica una gran cantidad de código, la transmisión
  de la página puede hacerse difícil. Puede pensarse en la utilización
  de ficheros de código (*.js) si el mismo es compartido por varios
  formularios.
 No es posible el dialogo con bases de datos, ficheros y entorno del
  servidor.


Por lo tanto una solución de compromiso en la que se considera
validaciones elementales puede hacerse con scripts en la propia página
para descargar el trafico de la red y el trabajo del servidor.
 HTML - Formularios: Diálogo con el usuario
    http://www.infor.uva.es/~jmrr/2007/TGP/DOC/TGP7DOC
     Formulario.htm
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

1. guia css3
1. guia css31. guia css3
1. guia css3
 
Curso HTML 5 & jQuery - Leccion 5
Curso HTML 5 & jQuery - Leccion 5Curso HTML 5 & jQuery - Leccion 5
Curso HTML 5 & jQuery - Leccion 5
 
Guia bootstrap
Guia bootstrapGuia bootstrap
Guia bootstrap
 
C3 lenguaje de presentación.
C3 lenguaje de presentación.C3 lenguaje de presentación.
C3 lenguaje de presentación.
 
Curso HTML 5 & jQuery - Leccion 1
Curso HTML 5 & jQuery - Leccion 1 Curso HTML 5 & jQuery - Leccion 1
Curso HTML 5 & jQuery - Leccion 1
 
Guia practica java script
Guia practica java scriptGuia practica java script
Guia practica java script
 
El lenguaje html
El lenguaje htmlEl lenguaje html
El lenguaje html
 
Presentacion sesion 3 en MPA del CEU por Pablo de Castro
Presentacion sesion 3 en MPA del CEU por Pablo de CastroPresentacion sesion 3 en MPA del CEU por Pablo de Castro
Presentacion sesion 3 en MPA del CEU por Pablo de Castro
 
Guía Teórica unidad III, Interfaz Gráficas de Usuarios
Guía Teórica unidad III, Interfaz Gráficas de UsuariosGuía Teórica unidad III, Interfaz Gráficas de Usuarios
Guía Teórica unidad III, Interfaz Gráficas de Usuarios
 
Diseño
DiseñoDiseño
Diseño
 
Html1
Html1Html1
Html1
 
Clase 1 Plataforma introducción a Diseño Web
Clase 1 Plataforma introducción a Diseño WebClase 1 Plataforma introducción a Diseño Web
Clase 1 Plataforma introducción a Diseño Web
 
¿Qué es el lenguaje HTML?
¿Qué es el lenguaje HTML?¿Qué es el lenguaje HTML?
¿Qué es el lenguaje HTML?
 
Html, Css y JavaScript
Html, Css y JavaScriptHtml, Css y JavaScript
Html, Css y JavaScript
 
El lenguaje html
El lenguaje htmlEl lenguaje html
El lenguaje html
 
Formulario
FormularioFormulario
Formulario
 
Manual html
Manual htmlManual html
Manual html
 
Curso HTML 5 & jQuery - Leccion 4
Curso HTML 5 & jQuery - Leccion 4Curso HTML 5 & jQuery - Leccion 4
Curso HTML 5 & jQuery - Leccion 4
 
Taller 1 mariana barreto
Taller 1 mariana barretoTaller 1 mariana barreto
Taller 1 mariana barreto
 
Lenguaje javascript
Lenguaje javascriptLenguaje javascript
Lenguaje javascript
 

Destacado

Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y CookiesDesarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y CookiesDidier Granados
 
Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: TransaccionesDesarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: TransaccionesDidier Granados
 
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...Didier Granados
 
CSS - Hojas de Estilo en Cascada
CSS - Hojas de Estilo en CascadaCSS - Hojas de Estilo en Cascada
CSS - Hojas de Estilo en CascadaDidier Granados
 
Introducción HTML y CSS
Introducción HTML y CSSIntroducción HTML y CSS
Introducción HTML y CSSDinamiclerning
 
UNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDAS
UNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDASUNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDAS
UNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDASEduardo S de Loera
 
Hojas de estilo CSS
Hojas de estilo CSSHojas de estilo CSS
Hojas de estilo CSSRamón RS
 
Introduccion Css
Introduccion CssIntroduccion Css
Introduccion CssAlf Chee
 
Posicionamiento SEO, SEM, SMO - Clase 4
Posicionamiento SEO, SEM, SMO - Clase 4Posicionamiento SEO, SEM, SMO - Clase 4
Posicionamiento SEO, SEM, SMO - Clase 4Dinamiclerning
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Renny Batista
 
Fundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema IIFundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema IIRenny Batista
 
Posicionamiento SEO, SEM, SMO - Clase 5
Posicionamiento SEO, SEM, SMO - Clase 5Posicionamiento SEO, SEM, SMO - Clase 5
Posicionamiento SEO, SEM, SMO - Clase 5Dinamiclerning
 

Destacado (20)

Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y CookiesDesarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
 
Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: TransaccionesDesarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones
 
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
 
CSS - Hojas de Estilo en Cascada
CSS - Hojas de Estilo en CascadaCSS - Hojas de Estilo en Cascada
CSS - Hojas de Estilo en Cascada
 
SEO
SEOSEO
SEO
 
Wordpress
WordpressWordpress
Wordpress
 
JQuery-Tema 1
JQuery-Tema 1JQuery-Tema 1
JQuery-Tema 1
 
Presentación css
Presentación cssPresentación css
Presentación css
 
Introducción HTML y CSS
Introducción HTML y CSSIntroducción HTML y CSS
Introducción HTML y CSS
 
UNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDAS
UNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDASUNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDAS
UNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDAS
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Introduccion a CSS I
Introduccion a CSS IIntroduccion a CSS I
Introduccion a CSS I
 
Hojas de estilo CSS
Hojas de estilo CSSHojas de estilo CSS
Hojas de estilo CSS
 
Css - Tema 2
Css -  Tema 2Css -  Tema 2
Css - Tema 2
 
Introduccion Css
Introduccion CssIntroduccion Css
Introduccion Css
 
Posicionamiento SEO, SEM, SMO - Clase 4
Posicionamiento SEO, SEM, SMO - Clase 4Posicionamiento SEO, SEM, SMO - Clase 4
Posicionamiento SEO, SEM, SMO - Clase 4
 
Html - Tema 3
Html - Tema 3Html - Tema 3
Html - Tema 3
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
Fundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema IIFundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema II
 
Posicionamiento SEO, SEM, SMO - Clase 5
Posicionamiento SEO, SEM, SMO - Clase 5Posicionamiento SEO, SEM, SMO - Clase 5
Posicionamiento SEO, SEM, SMO - Clase 5
 

Similar a Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones

Similar a Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones (20)

Exposicion
ExposicionExposicion
Exposicion
 
Clase 8 Manipulación del DOM
Clase 8 Manipulación del DOMClase 8 Manipulación del DOM
Clase 8 Manipulación del DOM
 
Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......
 
TEMA Nº 4: GENERACIÓN DE CONTENIDO DINÁMICO CON JSP
TEMA Nº 4: GENERACIÓN DE CONTENIDO DINÁMICO CON JSPTEMA Nº 4: GENERACIÓN DE CONTENIDO DINÁMICO CON JSP
TEMA Nº 4: GENERACIÓN DE CONTENIDO DINÁMICO CON JSP
 
Html5, css3, java script
Html5, css3, java scriptHtml5, css3, java script
Html5, css3, java script
 
Trabajo de programacion
Trabajo de programacionTrabajo de programacion
Trabajo de programacion
 
Web services-con-php
Web services-con-phpWeb services-con-php
Web services-con-php
 
Html4
Html4Html4
Html4
 
Web services
Web services Web services
Web services
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Js
JsJs
Js
 
Html4 equipo
Html4 equipoHtml4 equipo
Html4 equipo
 
XML Y RDF En Web SemáNtica
XML Y RDF En Web SemáNticaXML Y RDF En Web SemáNtica
XML Y RDF En Web SemáNtica
 
XML y RDF en Web Semántica
XML y RDF en Web SemánticaXML y RDF en Web Semántica
XML y RDF en Web Semántica
 
Taller Wordpress Nivel II
Taller Wordpress Nivel IITaller Wordpress Nivel II
Taller Wordpress Nivel II
 
Frameworks de templates y xml
Frameworks de templates y xmlFrameworks de templates y xml
Frameworks de templates y xml
 
DAM-S7.pptx
DAM-S7.pptxDAM-S7.pptx
DAM-S7.pptx
 
Guiajs2
Guiajs2Guiajs2
Guiajs2
 
Html4
Html4Html4
Html4
 
Cliente/Servidor
Cliente/ServidorCliente/Servidor
Cliente/Servidor
 

Último

Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 

Último (13)

Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 

Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones

  • 1. Didier Fabián Granados Muñoz Sesión No. 3 – Formularios y Validaciones Agosto 19 de 2009
  • 2.
  • 3.
  • 4.
  • 5. Comando Descripción GET Solicita el recurso ubicado en la URL especificada y envía datos en la misma. HEAD Solicita el encabezado del recurso ubicado en la URL especificada. POST Envía datos al programa ubicado en la URL especificada, generalmente mediante formularios. PUT Envía datos a la URL especificada. DELETE Borra el recurso ubicado en la URL especificada.
  • 6. Los formularios son una utilidad necesaria para que los documentos descritos con HTML dispongan de un medio para que el lector o visitante pueda remitir información personalizada al servidor, creándose, de esta forma, un sistema completo de interacción con el mismo.
  • 7. Un buen número de opciones…  Cajas de texto  Contraseñas  Campos ocultos  Casillas de verificación  Botones de selección  Botones  Imágenes  Áreas de texto  Listas
  • 8. Y ésta es la estructura básica de un documento HTML… <html> <head> Otras etiquetas... </head> Y en esta región <body> del documento Contenido de la página... HTML es que </body> debemos insertar el formulario. </html>
  • 9. <form action="acción" method="MétodoTransmisión"> Aquí van los objetos del Formulario </form>
  • 10. Elementos INPUT <input type="text|password|checkbox|radio|submit|reset|file| hidden|image" [id="identificador"] [size="tamaño"] [value="valor"] [checked="checked"] [maxlength="LongitudMáxima"] [name="NombreDeCampo"] [align="top|middle|bottom|left|right"] [src="UrlDeLaImagen"] />
  • 11. Elemento TEXTAREA <textarea name="nombre" [cols="columnas"] [rows="filas"] [align="alineación"]> Texto Inicial, no es necesario </textarea>
  • 12. Elemento SELECT (Listas) <select name="NombreLista" [size="valor"] [align="alineación"] [width="valor"] [height="valor"] [multiple="multiple"]> <option [selected="selected"]>Texto de la opción</option> ... </select>
  • 13.
  • 14.
  • 15. Ya sabemos para qué sirve un formulario…  Ya sabemos que cada campo se comporta de manera similar o diferente según los atributos especificados y sus valores.  Ya sabemos que podemos enviar datos al servidor y las diferencias entre GET y POST…  Pero… ¿Cómo podemos garantizar un buen manejo del formulario?  No meter textos muy largos…  Que un campo específico sólo reciba números… o sólo letras…  Que no me pueda pasar de cierto valor…  Que se pueda deshabilitar o habilitar un campo, según sea el caso…  Que el formulario no envíe si alguna de las condiciones anteriores no se cumple…
  • 16.
  • 17.  Es esencialmente una interfaz de programación de aplicaciones Web que proporciona un conjunto estándar de objetos para representar documentos HTML y XML, un modelo estándar sobre cómo pueden combinarse dichos objetos, y una interfaz estándar para acceder a ellos y manipularlos.  A través del DOM, los programas pueden acceder y modificar el contenido, estructura y estilo de los documentos HTML y XML, que es para lo que se diseñó principalmente.
  • 18.  Primera vez: Navegador Netscape 2.0  Modelo básico o el DOM de Nivel 0.  IE 3.0 fue el primer navegador de Microsoft que utilizó este nivel.  Netscape 3.0 empezó a utilizar rollovers.  Microsoft empezó a usar rollovers en IE 4.0.  Netscape 4.0 agregó la capacidad de detectar eventos ocurridos en el ratón y el teclado.  En IE 4.0 todos los elementos de una página web se empezaron a considerar objetos computacionales con la capacidad de ser modificados.
  • 19.  Octubre de 1998: DOM Nivel 1.  Por diferencias en estos navegadores.  Se consideraron las características y manipulación de todos los elementos existentes en los archivos HTML y XML.  Noviembre de 2000: DOM Nivel 2.  Se incluyó la manipulación de eventos en el navegador, la capacidad de interacción con CSS, y la manipulación de partes del texto en las páginas de la web.  Abril de 2004: DOM Nivel 3.  Utiliza la DTD (definición del tipo de documento) y la validación de documentos.
  • 20.
  • 21.
  • 22.  Guerra entre navegadores.  Netscape Navigator (y/o Mozilla Firefox) vs Internet Explorer…  Navegadores de otras compañías...  Crean graves problemas para los programadores de páginas web.  Los objetos no se comportan de la misma forma, lo que obliga con frecuencia a programar las páginas en más de una versión, una para el Netscape, o Firefox, otra para Internet Explorer, otra para Safari, Opera, etc.  En suma, no todas las versiones de un mismo navegador se comportan igual.
  • 23.  El W3C, el consorcio encargado de definir los estándares de la web, decidió crear un modelo de objetos único, el DOM, para que todos los fabricantes pudieran adoptarlo, facilitando la compatibilidad plena entre ellos.  No obstante, Microsoft ha añadido su propia extensión al DOM, creando problemas de interoperabilidad para los navegadores web.  Esto cambiará sólo si nuevos navegadores que respeten los estándares ganan una cuota de mercado significativa en la web, de forma que el uso de extensiones no estándares se convierta en un problema comercial para los autores de los sitios web que las usen.
  • 24.
  • 25.  DOM según la W3C  http://www.w3.org/DOM/  DOM en Mozilla  http://www.mozilla.org/docs/dom/domref/  Especificación DOM Nivel 1  http://html.conclase.net/w3c/dom1-es/cover.html
  • 26.
  • 27. Los formularios de una determinada página web forman una colección de objetos: forms. Esta colección está incluida en el objeto document, por lo que podemos referirnos a un determinado formulario de tres formas: 1. Por su índice en la colección forms, es decir, el índice que indica su posición en la página. En este caso, document.forms[0], nombraría el primer formulario de la página. 2. Indizado por su nombre (dado por el atributo name de la directiva <form>). Así, document.forms['forma1'] se referirá al formulario iniciado por <form name="forma1" ...> 3. Nombrándolo directamente por su identificador único, dado por el atributo id de la directiva <form>. De este modo, cuando se dice document.FormularioPropio, se refiere al formulario identificado por <form name="forma2" id="FormularioPropio" ...>.
  • 28.
  • 30. <input type="text|password|checkbox|radio|submit|reset|file| hidden|image" [id="identificador"] [size="tamaño"] [value="valor"] [checked="checked"] [maxlength="LongitudMáxima"] [name="NombreDeCampo"] [align="top|middle|bottom|left|right"] [src="UrlDeLaImagen"] />  Por muy opcionales que sean, el papel exacto que lo atributos name y id juegan en la nominación de los formularios en la colección forms depende del navegador y entorno
  • 31. Los elementos  Dependiendo de cada objeto form depende una colección de objetos: element, que contiene los objetos que representan cada uno de los elementos que contiene el formulario.  Los objetos de estas colecciones se referencian de igual forma que los formularios, es decir:  A través de un índice que indica su posición en el formulario.  Mediante la etiqueta name o el atributo id.  Pero siempre se ha de tener en cuenta que cada formulario contiene una colección de elementos y que los mismos se referencias o indizan de acuerdo a la mismas.
  • 32. Los elementos Así:  document.forms[2].element[3], representa el cuarto elemento del tercer formulario de la página.  document.forms[´forma1'].EntradaTexto representa un elemento con el atributo id="EntradaTexto" en el formulario <form name="forma1" ...>.
  • 33. Los objetos form como los objetos element tienen una serie de propiedades que los definen y que, así mismo, establezcan su comportamiento.  Algunas de esas propiedades serán de lectura y escritura y los procedimientos JavaScript podrán leer su valor o cambiarlo, mientras que en otros casos solo podrán leer el valor sin posibilidad de actualizarlo.  Los objetos responderán a una serie de métodos que permitirán actuar sobre los mismos y podrán responder a unos eventos que permitirán definir el comportamiento de los mismos frente a actuaciones de entorno y del usuario.
  • 34.
  • 35. Es un lenguaje de programación interpretado, es decir, que no requiere compilación.  Es utilizado principalmente en páginas web.  No confundir, no tiene nada que ver con Java… pero tiene una sintaxis semejante, aunque también se asemeja al lenguaje C.  Todos los navegadores modernos interpretan el código JavaScript integrado dentro de las páginas web. Por tanto, es una tecnología del lado del cliente.  Para interactuar con una página web se provee al lenguaje JavaScript de una implementación del DOM.
  • 36. Inicialmente lo llamaron Mocha y más tarde LiveScript pero fue rebautizado como JavaScript en un anuncio conjunto entre Sun Microsystems y Netscape, el 4 de diciembre de 1995.  En 1997 los autores propusieron JavaScript para que fuera adoptado como estándar de la European Computer Manufacturers' Association ECMA, que a pesar de su nombre no es europeo sino internacional, con sede en Ginebra. En junio de 1997 fue adoptado como un estándar ECMA, con el nombre de ECMAScript. Poco después también lo fue como un estándar ISO.  JScript es la implementación de ECMAScript de Microsoft, muy similar al JavaScript de Netscape, pero con ciertas diferencias en el modelo de objetos del navegador que hacen a ambas versiones con frecuencia incompatibles.
  • 37. Para evitar estas incompatibilidades, la W3C (World Wide Web Consortium) diseñó el estándar DOM…  Lo incorporan los navegadores Konqueror, las versiones 6 de Internet Explorer (en teoría) y Netscape Navigator, Opera 7, y Mozilla desde su primera versión.
  • 38. Referencia  Javascript se puede incluir en cualquier documento y es compatible con cualquier sistema operativo, o todo aquel que termine traduciéndose en HTML en el navegador del cliente.  Bastará con escribir en el documento HTML: <script type="text/javascript" src="[URL]"> </script>
  • 39. Referencia  También es posible incluir código directamente en el documento entre los elementos <script> y </script>, aunque no se recomienda por ser una práctica invasiva: <script type="text/javascript"> <!-- // código JavaScript --> </script>
  • 40.
  • 41.
  • 42. Los objetos responderán a una serie de métodos que permitirán actuar sobre los mismos y podrán responder a unos eventos que permitirán definir el comportamiento de los mismos frente a actuaciones de entorno y del usuario:  Propiedades como value, size, selected, checked...  Métodos como click, scrollIntoView, focus, ...  Manejadores de eventos como onClick, onChange, onMouseOver...  A los que se añadirán las propiedades y métodos propios de las colecciones: add, remove, length...
  • 43. No importa su tipo.  Se puede acceder a ellos por su nombre: <input type="text" name="texto" />  document.forms[0].texto;  O de manera más global, por su id, ya que este es único en el documento HTML: <input type="text" id="campoTexto" />  document.getElementById("texto");
  • 44. Manejador Descripción onmouseover Cuando se pone el cursor sobre el elemento. onmouseout Cuando se quita el cursor del elemento. onfocus Cuando el cursor está dentro de un campo o lo mantiene activo. onblur Cuando el cursor sale del campo o deja de seleccionarlo. onchange Cuando hay algún cambio en el valor del campo. onmousemove Cuando el mouse se está moviendo sobre el elemento. onsubmit Cuando se envía un formulario. onkeypress Cuando se presiona una tecla. onkeyup Cuando una tecla deja de ser presionada. onkeydown Cuando la tecla está siendo presionada. onload Cuando carga la página. onclick Cuando se hace clic sobre el objeto. ondblclick Cuando se hace doble clic sobre el objeto.
  • 45.
  • 46. La propiedad value es la más utilizada en su manejo, tanto para leer el valor en los mismos contenido o actualizarle dinámicamente. <input type="text" name="texto" id="campoTexto" size="20" value="Texto" /> document.forms[0].texto.value document.getElementById("campoTexto").value Texto  Se ha de tener en cuenta que el valor obtenido a partir de la propiedad value es un string y su conversión a valor numérico, de ser necesaria, se ha de realizar llamando al método parseInt() de JavaScript, u otro similar.
  • 47. La validación del contenido de los campos de texto y contraseña se puede realizar en tres niveles y su correcto uso facilitará en gran manera la utilización de los formularios web y aumentará la eficacia de los mismos. Las tres formas de validación son:  A nivel de entrada Capturando las teclas pulsadas por el usuario.  A nivel de salida Cuando el usuario abandona el campo (pierde el foco) por activar otro campo.  A nivel de envío Antes de proceder a la remisión de contenidos al receptor de los datos del formulario.  Ver ejemplos 1 y 2.
  • 48. Al igual que el resto de controles de los formularios es posible referirse a las mismas de dos formas: 1. A través de la colección elements: document.forms[0].elements[1].checked = true; 2. O con un nombre propio establecido con el atributo name de la directiva input: document.forms[0].elCheckbox.checked = true;  En cualquier caso, el manejo de estos controles se reduce al manejo de la propiedad checked, la cual contiene un valor true o false dependiendo de si la casilla está activada o apagada. Esta propiedad es de lectura y escritura, con lo que es posible cambiar el estado del control de forma dinámica.  Ver ejemplo 3.
  • 49. Los botones de radio son tratados como una colección cuando tienen el mismo nombre.  Es posible referirse a ellos de las siguientes dos formas: 1. A través de la colección elements: document.forms[0].elements[1][2].checked = true; 2. O con un nombre propio establecido con el atributo name de la directiva input: document.forms[0].elRadio[2].checked = true;  Aquí también existe el manejo de la propiedad checked, la cual contiene un valor true o false dependiendo de si el botón está activado o apagado, pero sólo un botón del grupo puede tener dicha característica en un tiempo determinado.  Ver ejemplo 4.
  • 50. Cada lista no vacía de un formulario tiene una colección de opciones, llamada options, que identifica a cada uno de los valores dispuestos en la misma, y cada uno de los elementos de ésta colección disponen de una propiedad que es reflejo del texto y/o valor que esta en la directiva <option>.  Si el formulario tiene por nombre forma, y la lista se llama lista, document.forma.lista.options[0].text identifica el texto que tiene la primera opción de dicha lista.  La propiedad selectedIndex de las listas permite conocer cual es elemento seleccionado en cada momento, esta propiedad toma el valor, entre 0 y document.forma.lista.options.length - 1, que nos servirá como índice para trabajar con la colección options.  Ver ejemplo 5.
  • 51. La principal diferencia con las listas de selección única radica en el hecho de que la propiedad selectedIndex de la lista no es muy utilizable, ya que solo retornaría el índice del primer valor seleccionado.  Si se quiere conocer los índices de todas las opciones seleccionadas será necesario recorrer la colección options (de manera similar a los botones de radio, solo que en este caso sí podemos tener más de una opción a la vez) y comprobar uno por uno su estado consultando la propiedad selected.  Ver ejemplo 6.
  • 52. En los formularios puede existir un botón que permite el envio de los contenidos del mismo al destino fijado en el atributo action de la directiva <form>.  Este botón es un campo input del tipo submit.  Generalmente su valor es "Enviar“.  La pulsación de este botón produce el envío del formulario, y al mismo tiempo se produce un evento onsubmit, que puede ser tratado con un manejador de evento colocado en la directiva <form>.  Las expresiones JavaScript colocadas en el manejador del evento onsubmit son ejecutadas antes de proceder al envío. Si el resultado de dichas expresiones, como el valor retornado por una función, es true, el envío se produce sin más, pero si ese valor retornado es false, el envío se cancela.  Ver ejemplo 7.
  • 53. La verificación de los datos introducidos por el usuario en el lado del cliente, en la propia página HTML en la que figura el formulario tiene importantes ventajas:  Se disminuye el trafico de la red, ya que los errores no significan la transmisión de información a través de la misma.  Al poder validar campo a campo el usuario puede ver la consecuencia de sus acciones instantáneamente y la validación se hace más ágil  El servidor es descargado de ciertos trabajos, lo cual en servidores con gran carga de atención a muchos clientes puede ser de gran interés.  La validación puede tener en cuenta el entorno del cliente.
  • 54. Este proceso tiene algunas desventajas que es necesario tener muy en cuenta:  Si la validación implica una gran cantidad de código, la transmisión de la página puede hacerse difícil. Puede pensarse en la utilización de ficheros de código (*.js) si el mismo es compartido por varios formularios.  No es posible el dialogo con bases de datos, ficheros y entorno del servidor. Por lo tanto una solución de compromiso en la que se considera validaciones elementales puede hacerse con scripts en la propia página para descargar el trafico de la red y el trabajo del servidor.
  • 55.
  • 56.  HTML - Formularios: Diálogo con el usuario  http://www.infor.uva.es/~jmrr/2007/TGP/DOC/TGP7DOC Formulario.htm