<form><input><textarea><select>, <option> y <optgroup><button><fieldset> y <legend><form>Los formularios son elementos que permitirán al visitante interactuar con nuestra página.
Los formularios interpretan las acciones que una persona realiza sobre nuestra página y obtiene en consecuencia determinada respuesta. El proceso de estos datos se realiza mediante un programa ejecutable CGI o de lenguaje de script (PERL, ASP, etc.) en el ordenador de nuestro servidor. Este tipo de programas se escapa al nivel pretendido en estas lecciones por lo que no lo veremos aquí.
Lo que sí podremos hacer de forma inmediata, y sin necesidad de conocer estos lenguages de programación, es pedir información al visitante y que esta información sea enviada a nuestra cuenta de correo electrónico. Esto sólo será posible si el visitante dispone en su ordenador de un programa de correo, por ejemplo el Outlook de Microsoft, y a través de éste se enviará la información solicitada.
La etiqueta que define un formulario es <form>. Su estructura y sus atributos son los siguientes:
<form action="programa" method="método"> |
|
|---|---|
action="programa" |
Indica la dirección del programa que se ejecutará para procesar los datos. En el caso de que queramos enviar los datos a una dirección de correo, por ejemplo tutorialhtml@terra.es, escribiremos:action="mailto:tutorialhtml@terra.es" |
method="get|post" |
Indica el método que se utilizará para enviar los datos del formulario. Los valores posibles son get (por defecto) y post.En el caso de que queramos enviar los datos a una dirección de correo utilizaremos method="post". |
enctype="tipo de datos" |
Indica el tipo de datos. Los valores más usuales son:
|
name="nombre" |
Indica el nombre del formulario para futuras referencias con rutinas de scripts. |
En resumen la etiqueta <form> actua en primer lugar como contenedor de los elementos del formulario y en segundo lugar indica la acción a desarrollar con el mismo.
En Html podemos crear los siguientes tipos de controles:
| Control | Explicación |
|---|---|
| Botones (buttons) |
Son controles que realizan una determinada acción al pulsarlos. Hay tres tipos de botones:
<button> o con <input>, aunque es más recomendable utilizar la primera. |
| Casillas de verificación (checkboxes) Marca la casilla |
Las casillas de verificación (y los radiobotones) son interruptores de encendido/apagado que pueden ser conmutados por el usuario. Para crear un control de casilla de verificación se utiliza la etiqueta <input>. |
| Radiobotones (radio buttons) Blanco Negro |
Los radiobotones son como las casillas de verificación, excepto en que cuando varios comparten el mismo nombre de control, son mutuamente exclusivos, es decir, cuando uno está "encendido", todos los demás con el mismo nombre se "apagan". Para crear un control de radiobotón se usa la etiqueta <input>. |
| Menúes (menus) |
Los menúes ofrecen al usuario opciones entre las cuales elegir. Se crean con la etiqueta <select> en combinación con <optgroup> y <option>. |
| Entrada de texto (text input) |
Podemos crear dos tipos de controles que permiten a los usuarios introducir textos. Con la etiqueta <input> se crea un control de entrada de una sola línea, y con <textarea> un control de entrada de varias líneas. |
| selección de ficheros (file select) |
Este control permite al usuario elegir ficheros de modo que sus contenidos puedan ser enviados con un formulario. Para crear un control de este tipo se usa la etiqueta <input>. |
| Controles ocultos (hidden controls) | Podemos crear controles que no se muestran pero cuyos valores se envían con un formulario. Este tipo de controles se usan normalmente para almacenar información entre intercambios cliente/servidor que de otro modo se perdería. Para crear un control de este tipo se usa la etiqueta <input>. |
<input>La etiqueta <input> es la que controla la mayoría de los posibles controles de un formulario en Html. El tipo de control lo indicaremos mediante el atributo type.
Esta etiqueta no lleva etiqueta de cierre. Veamos como se usa y sus atributos:
<input type="tipo de control"> |
|||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
type="tipo de control" |
Este es el atributo obligatorio que indica el tipo de control. Sus valores posibles son:
|
||||||||||||||||||||||
name="nombre" |
Indica el nombre del control para futuras referencias, por ejemplo, con JavaScript. | ||||||||||||||||||||||
tabindex="número" |
Al rellenar un formulario podemos pasar de un control a otro con la tecla TAB. Este atributo indica el orden en el que pasaremos por los controles. |
||||||||||||||||||||||
accesskey="tecla" |
Indica la tecla de acceso rápido para acceder a este control. En los navegadores más usuales se accede pulsando la tecla Alt más la tecla indicada en este atributo. |
||||||||||||||||||||||
El resto de atributos dependen del tipo de control por lo que los estudiaremos por separado para los distintos tipos:
<input type="text"> |
|
|---|---|
value="valor" |
Indica el valor inicial del control, es decir, el contenido del cuadro de texto. |
size="número" |
Indica la anchura inicial del control en número entero de caracteres. |
maxlength="número" |
Indica el número máximo de caracteres que se pueden introducir. El valor por defecto para este atributo es un número ilimitado. |
readonly |
Indica que el valor de este control no podrá modificarse. |
| Prueba los siguientes ejemplos | |
Ejemplo textNombre |
CódigoNombre<br> |
Ejemplo passwordContraseña |
CódigoContraseña<br> |
<input type="checkbox"> |
|
|---|---|
name="nombre" |
Para crear un grupo de controles tipo radio excluyentes entre sí han de tener todos ellos el mismo atributo name. |
value="valor" |
Indica el valor del control. Este valor no será visible pero es el que se enviará con el formulario y por este motivo es obligatorio indicarlo siempre. El rótulo que acompaña a estos controles deberá escribirse a continuación, fuera de la etiqueta. |
checked |
Indica que este control está seleccionado inicialmente. |
| Prueba los siguientes ejemplos | |
Ejemplo checkboxMarca la casilla Casilla |
CódigoMarca la casilla<br> |
Ejemplo radioEscoge un color Rojo Amarillo Verde |
CódigoEscoge un color<br> |
<input type="submit"> |
|
|---|---|
value="valor" |
Indica el valor del control, que en el caso de botones es el texto del botón. |
onClick="evento" |
Los controles tipo button no hacen nada por lo que
se les debe asignar una acción, normalmente con el atributo onClick
que se activa al pulsar sobre el botón. |
| Prueba los siguientes ejemplos | |
Ejemplo submit |
Código<input type="submit" name="ejemplo" value="Enviar"> |
Ejemplo reset |
Código<input type="reset" name="ejemplo" value="Restablecer"> |
Ejemplo button |
Código<input type="button" name="ejemplo" value="Pulsa" onClick="alert(′Muy bien, has pulsado el botón′)"> |
<input type="image"> |
|
|---|---|
src="imagen" |
Indica el archivo de imagen que mostrará el botón. |
alt="texto" |
Indica un texto alternativo del mismo modo que en la etiqueta <img>. |
usemap="#mapa" |
Funciona como el atributo del mismo nombre de la etiqueta <img>. |
| Prueba el siguiente ejemplo | |
| Ejemplo |
Código<input type="image" name="ejemplo" src="recursos/boton.gif" alt="Pulsa para enviar"> |
<input type="hidden"> |
|
|---|---|
value="valor" |
Indica el valor del control. Este control no es visible pero su valor se enviará con el formulario. La única manera de cambiar su valor es mediante eventos de script. |
<input type="file"> |
|
|---|---|
size="número" |
Indica la anchura inicial del control en número entero de caracteres. |
accept="tipo" |
Indica el tipo de archivos admitidos. Por ejemplo, para texto plano si formato indicaremos accept="text/plain", para enviar imágemes admitidas en html indicaremos accept="image/gif,image/jpeg,image/x-png". |
| Prueba el siguiente ejemplo | |
| Ejemplo |
Código<input type="file" name="ejemplo" size="10" accept="image/gif"> |
Para entender todo esto un poco más veamos un ejemplo de formulario con los controles conocidos:
| Código | |
|---|---|
<form action="mailto:tutorialhtml@terra.es" method="post" name="miformulario" enctype="text/plain"> |
|
| Resultado | |
| Ejemplo de E-mail enviado con las respuestas | |
Nombre=Pepito LopezNota: Observar que de este modo no se envía la imagen adjunta, sólo la ruta. Para enviar archivos adjuntos necesitaremos especificar en el atributo
action un programa cgi que procese el formulario, pero no podremos enviar archivos vía e-mail. |
|
libro.htm con el editor de textos.
Pseudónimo no puede tener más de 6 caracteres ni Contraseña más de 4Edad, ¿Dónde vives? y Aficiones están en las tres celdas de una tablaname de la etiqueta <form> debe ser miformularioname diferente. Para el nombre debe ser name="nombre", lo usaremos más adelante.email@correo.es<textarea>Para introducir textos largos en un formulario disponemos de la etiqueta <textarea>.
<textarea rows="filas" cols="columnas"> </textarea> |
|
|---|---|
rows="filas" |
Indica el número de filas y el número de caracteres por fila respectivamente. Estos atributos son obligatorios. |
name="nombre" |
Indica el nombre del control para futuras referencias, por ejemplo, con JavaScript. |
tabindex="número" |
Al rellenar un formulario podemos pasar de un control a otro con la tecla TAB. Este atributo indica el orden en el que pasaremos por los controles. |
readonly |
Indica que el valor de este control no podrá modificarse. |
accesskey="tecla" |
Indica la tecla de acceso rápido para acceder a este control. En los navegadores más usuales se accede pulsando la tecla Alt más la tecla indicada en este atributo. |
| Prueba el siguiente ejemplo | |
| Ejemplo Comentarios |
CódigoComentarios<br> |
libro.htm con el editor de textos.<select>, <option> y <optgroup>Otro tipo de controles son los menúes desplegables. Estos permiten seleccionar una o varias opciones de una lista.
Un menú desplegable se crea con la etiqueta <select> y dentro de ella crearemos cada elemento de la lista con <option>. La tercera etiqueta, <optgroup>, sirve para agrupar los elementos de la lista cuando es necesario.
Veamos como se utilizan estas etiquetas:
<select> |
|
|---|---|
<select> </select> |
Con esta etiqueta creamos el menú desplegable donde el visitante elegirá su opción. |
<option> </option> |
Con esta etiqueta crearemos en nuestro menú cada una de las opciones que queremos. El rótulo de cada opción se escribe entre la etiqueta de apertura y la de cierre. |
Atributos opcionales para <select> |
|
size="número" |
Indica el número de opciones (o filas) que serán visibles. La anchura del menú se adapta a la longitud de las opciones automáticamente, aunque si queremos ajustarla a nuestro gusto podemos usar hojas de estilo. |
multiple |
Permite escoger más de una opción al mismo tiempo. Si no lo indicamos sólo podremos escoger una opción. |
name="nombre" |
Indica el nombre del control para futuras referencias, por ejemplo, con JavaScript. |
tabindex="número" |
Al rellenar un formulario podemos pasar de un control a otro con la tecla TAB. Este atributo indica el orden en el que pasaremos por los controles. |
Atributos opcionales para <option> |
|
selected |
Indica que está es la opción marcada por defecto. Si no se indica en ninguna de las opciones se toma la primera. |
value="valor" |
Indica el valor inicial de la opción, es decir, el que se enviará con el formulario. Si no se indica, se enviará el rótulo entre la etiquetas de apertura y cierre. |
| Prueba el siguiente ejemplo | |
| Ejemplo Edad |
CódigoEdad<br> |
libro.htm con el editor de textos.Escribe tus sugerencias, de tipo menú desplegable y con el rótulo Qué te parece esta web?
A menudo, y sobretodo cuando hay muchas opciones para elegir en la lista, nos puede resultar interesante agrupar las opciones para un mejor entendimiento. Esto se consigue con la etiqueta <optgroup>.
Vamos a ver como se utiliza y un ejemplo:
<select> |
|
|---|---|
<optgroup> </optgroup> |
Dentro de estas dos etiquetas pondremos las opciones de este grupo. |
Atributos para <optgroup> |
|
label="nombre" |
Indica el nombre del grupo y es una etiqueta obligatoria pues es el texto que aparecerá en la lista. |
| Prueba el siguiente ejemplo | |
| Ejemplo Selecciona un animal: |
Código<select name="ejemplo"> |
libro.htm con el editor de textos.¿Qué te parece esta web?, de tipo menú desplegable y con el rótulo Qué estudios tienes?
<button>Los botones creados con <button> funcionan igual que los creados con la etiqueta <input type="button">. La única diferencia es que el contenido de un botón creado con <button> es lo que pondremos entre las etiquetas de apertura y cierre, pudiendo definir estilos o incluir imágenes, mientras que al crearlo con <input> sólo podremos incluir un texto mediante el atributo value.
Al igual que vimos en la etiqueta <input>, un botón no hace nada por sí sólo, sino que hemos de asignarle un evento con un lenguaje de script.
Veamos su estructura y un ejemplo:
<button>Contenido</button> |
|
|---|---|
name="nombre" |
Indica el nombre del control para futuras referencias, por ejemplo, con JavaScript. |
tabindex="número" |
Al rellenar un formulario podemos pasar de un control a otro con la tecla TAB. Este atributo indica el orden en el que pasaremos por los controles. |
accesskey="tecla" |
Indica la tecla de acceso rápido para acceder a este control. En los navegadores más usuales se accede pulsando la tecla Alt más la tecla indicada en este atributo. |
value="valor" |
Indica el valor inicial del control, que es el que será enviado con el formulario. |
type="tipo" |
Indica el tipo de botón, que puede ser submit, reset o button. La función de cada tipo es la misma que para <input>. Por defecto se crea un botón de envío tipo submit. |
onclick="evento" |
Los controles tipo <button type="button"> no hacen nada por lo que se les debe asignar una acción, normalmente con el atributo onclick que se activa al pulsar sobre el botón. |
| Prueba el siguiente ejemplo | |
| Ejemplo |
Código<button type="button" name="ejemplo" onClick="alert(′Muy bien, has pulsado el botón′)"><span style="color: red;">Pulsa<br>aquí</span></button> |
libro.htm con el editor de textos.<button type="button">Saludo entre las etiquetas de apertura y cierre con un estilo atractivoonclick con el siguiente contenido: alert('Hola '+document.miformulario.nombre.value)<fieldset> y <legend>Cuando el formulario es muy extenso puede resultar útil agrupar los controles. Esto lo podemos hacer con la etiqueta <fieldset>, y podemos añadir un rótulo a cada grupo de controles con la etiqueta <legend>.
Veamos como utilizarlas y un ejemplo:
<form> |
|
|---|---|
<fieldset> </fieldset> |
Dentro de estas dos etiquetas pondremos los distintos controles que componen este grupo. |
<legend> </legend> |
Dentro de estas dos etiquetas pondremos el rótulo de este grupo de controles. |
Veamos el ejemplo de más arriba con los controles agrupados:
| Código | |
|---|---|
<form action="mailto:tutorialhtml@terra.es" method="post" name="miformulario" enctype="text/plain"> |
|
| Resultado | |
libro.htm con el editor de textos.Datos personales hasta ¿Qué estudios tienes? con el rótulo Datos del visitante¿Qué te parece esta web? y Escribe tus sugerencias en un grupo con el rótulo OpiniónProcesado de ls datos Marcos |
Publicar en Internet ![]() |