Formularios PDF
Formularios PDF
Formularios PDF
html
Formularios
Nombre:
Año de nacimiento:
La etiqueta que delimita un formulario es la etiqueta <form> ...</form>. Los atributos más
importantes de la etiqueta <form> son:
action: contiene el nombre del agente que procesará los datos remitidos al servidor (por
ejemplo, un script de PHP)
method: define la manera de enviar los datos al servidor. Los valores posibles son:
get: los valores enviados se añaden a la dirección indicada en el atributo action
post: los valores se envían de forma separada
Si el atributo method no está establecido, el formulario se comporta como si el valor fuera get.
La etiqueta <form> es un elemento de bloque. En su interior puede haber cualquier elemento
típico de una página web (párrafos, imágenes, divisiones, listas, tablas, etc.), además de las
etiquetas que crean los controles.
Los etiquetas que crean los controles en los formularios son <input>, <button>, <select>,
<optgroup>, <option> y <textarea>. Además, se pueden estructurar los controles con las etiquetas
<fieldset> y <legend>. Por último, la etiqueta <label> permite mejorar la accesibilidad de los
controles.
1 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
El navegador envía únicamente los datos de los controles contenidos en el formulario. En una
misma página puede haber varios formularios que envíen datos al mismo o a diferentes agentes.
Falta comentar algunos atributos como autocomplete, height, list, pattern, title, width.
El atributo type
El atributo name
El atributo value
El atributo value permite establecer el valor inicial de un control, aunque cada control lo utiliza de
una forma ligeramente distinta y algunos controles no lo admiten (área de texto, archivo o imagen).
En algunos casos (botones) el valor se muestra al usuario y el usuario no puede modificarlo. En
otros casos (cajas de texto, contraseña) el valor se muestra en la página y el usuario puede
modificarlo. En otros casos (casillas de verificación, botones radio, opciones de menú, oculto) el
valor no se muestra en la página y el usuario no puede modificarlo.
En algunos casos (botones, oculto, botones radio) el atributo value es necesario. En otros casos
(casilla de verificación, opciones de menú) es conveniente. En otros casos (cajas de texto,
contraseña, imagen) puede omitirse. En el caso del selector de archivo, los navegadores no lo
2 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
El atributo required
El atributo required permite indicar qué controles es obligatorio rellenar para enviar el formulario.
Nombre:
Si alguna de las opciones de un botón radio tiene establecido el atributo required, el control es
obligatorio.
El atributo placeholder
El atributo placeholder permite mostrar en los controles de texto un texto que desaparece al
escribir en el control.
Apellidos:
3 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
El atributo size
El atributo size permite establecer la longitud de los controles de texto (text, password, search,
etc.). Por omisión, las cajas suelen tener 20 caracteres de longitud.
Nombre:
Apellidos:
Nacionalidad:
Usuario:
Contraseña:
El atributo autofocus
El atributo autofocus permite indicar el control que debe tener el foco al cargarse el formulario.
Este atributo facilita la accesibilidad del formulario pues permite que el usuario pueda empezar a
rellenar el formulario sin necesidad de hacer clic en el elemento. Como el navegador desplaza
automáticamente la página hasta la posición del elemento, se recomienda que el elemento con
atributo autofocus se encuentren al principio de la página, para que el desplazamiento no
confunda al usuario.
Nota: En estos apuntes (lecciones y ejercicios) no se utiliza este atributo porque como en las
páginas se incluyen varios formularios en distintas posiciones de la página, el desplazamiento
automático a un elemento con atributo autofocus puede confundir al lector.
El atributo disabled
4 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
El atributo disabled permite deshabilitar el control. Una vez deshabilitado, el control ni siquiera
puede coger el foco.
El atributo readonly
El atributo readonly hace que el control no sea modificable, aunque el control puede coger el foco.
El atributo tabindex
El atributo tabindex permite controlar el orden en que el foco pasa de un elemento a otro mediante
el tabulador (Tab para avanzar y Shift+Tab para retroceder). Los valores de tabindex pueden ser
números naturales (incluido el cero), no necesariamente consecutivos. Si no está presente, los
controles se visitan en el orden en que aparecen en el texto. Si está presente, los controles se
visitan de menor a mayor.
5 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
El atributo accesskey
El atributo accesskey establece la tecla que coloca el foco en un elemento de un formulario, pero
los navegadores Google Chrome, Firefox y Microsoft Edge no utilizan los mismos atajos de
teclado, como se comenta en la lección de diferencias entre navegadores.
Firefox utiliza la combinación Alt+Shift+tecla
Google Chrome utilizan normalmente la combinación Alt+tecla, pero cuando esa
combinación ya está asociada a alguna acción usa la combinación Alt+Shift+tecla
Edge combina ambos comportamientos: utiliza la combinación Alt+Shift+tecla, pero
también permite la combinación Alt+tecla cuando no está asociada a ninguna acción
Chrome utiliza la combinación Alt+tecla, que tiene el inconveniente que entra en conflicto con
combinaciones de teclas ya definidas por el navegador o el sistema operativo. Firefox utiliza la
combinación Alt+Shift+tecla, más incómoda de utilizar, pero que no interfiere con las
combinaciones ya definidas por el navegador o el sistema operativo.
En el ejemplo siguiente, Chrome y Edge no pueden acceder a la caja de texto con la combinación
Alt+d, ya que esta combinación traslada el foco a la barra de dirección, pero pueden hacerlo con
la combinación Alt+Shift+d:
6 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
En el ejemplo siguiente, Chrome no puede acceder a la caja de texto con la combinación Alt+e,
ya que esta combinación abre el menú de herramientas, pero puede hacerlo con la combinación
Alt+Shift+e:
En el caso de las teclas de acceso que no son las letras del alfabeto (los acentos no pueden ser
teclas de acceso):
Firefox utiliza la combinación Alt+Shift+tecla
Chrome y Edge utilizan la combinación Alt+tecla
7 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Si hay varios elementos con la misma tecla de acceso, o si hay varios elementos con la misma
tecla de acceso en mayúsculas y minúsculas:
Google Chrome no avanza de uno a otro
Firefox avanza de uno a otro con la combinación Alt+Shift+tecla
Edge avanza de uno a otro con la combinación Alt+tecla y retrocede de uno a otro con
Alt+Shift+tecla
8 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
El contenido del botón <button> se escribe dentro del elemento, por lo que puede incluir texto e
imágenes.
Normalmente los botones no suelen llevar atributo name, pero se puede poner si se quiere
(tendría sentido si un formulario contuviera dos botones de envío y quisiéramos saber en cuál de
ellos ha hecho clic el usuario, pero esto no es muy habitual).
El botón Submit es el que permite al usuario remitir los datos al servidor. Se crea mediante una
etiqueta <input> o <button> cuyo atributo type tiene el valor submit.
Escriba algo:
9 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Escriba algo:
Si un botón <button> no lleva el atributo type, se comporta como un botón de tipo submit.
Escriba algo:
El botón Reset restablece los valores iniciales del formulario. Se crea mediante una etiqueta
<input> o <button> cuyo atributo type tiene el valor reset.
Caja de texto:
Casilla de verificación
Caja de texto:
Casilla de verificación
Si una caja de texto u otro control similar tienen establecidos los atributos value o placeholder, el
botón Reset restablece estos valores, pero no deja vacío el control.
10 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Caja de texto:
Caja de texto:
Un botón de tipo general se suele asociar a un script para hacer algo. Se crea mediante una
etiqueta <input> o <button> cuyo atributo type tiene el valor button.
11 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Las cajas de texto de una sola línea se crean mediante una etiqueta <input>
cuyo atributo type tiene el valor text.
Escriba algo:
El atributo value (optativo) permite incluir un texto en la caja de texto para que el usuario lo
modifique. HTML 5 introdujo el atributo placeholder, mucho más cómodo para el usuario, ya que
no tiene que borrar el texto de ayuda.
Las cajas de texto de una sola línea específicas para contraseñas se crean
mediante una etiqueta <input> cuyo atributo type tiene el valor password.
Contraseña:
Al escribir en una caja de contraseña, en vez de letras aparecen puntos gruesos. Es importante
señalar que estas cajas no proporcionan ninguna seguridad en la transmisión, simplemente
ocultan al usuario lo que este escribe.
Las cajas de texto de una sola línea específicas para números se crean
mediante una etiqueta <input> cuyo atributo type tiene el valor number.
En principio, los valores admitidos por el control son números enteros.
12 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Escriba un número:
El atributo step permite que el control admita números decimales. Los navegadores alertan al
usuario cuando no ha escrito un valor correcto, como mínimo al enviar el formulario.
En el caso de los números decimales:
Chrome admite la coma (,) y el punto (.) como separadores de la parte decimal.
Firefox sólo admite la coma (,) como separador de la parte decimal.
Edge sólo admite el punto (.) como separador de la parte decimal.
El atributo step establece la cantidad, entera o decimal, en la que aumenta o disminuye el valor:
13 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Para poder escribir cualquier número, el atributo step debe tener el valor any:
Las cajas de texto de una sola línea específicas para búsquedas se crean
mediante una etiqueta <input> cuyo atributo type tiene el valor search.
Búsqueda:
La recomendación HTML 5 aclara que la diferencia entre text y search es únicamente de estilo y
que el cuadro de búsqueda debería tener el estilo de los cuadros de búsqueda del sistema
utilizado.
Las cajas de texto de una sola línea específicas para números de teléfonos se
crean mediante una etiqueta <input> cuyo atributo type tiene el valor tel.
Teléfono:
La recomendación HTML 5 aclara que los formatos de números de teléfono siguen formatos tan
variados que este control no obliga a utilizar ninguna sintaxis en particular.
En los teléfonos móviles, al escribir en una caja de texto de tipo tel se muestra un teclado
numérico.
14 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Las cajas de texto de una sola línea específicas para direcciones web (URL) se
crean mediante una etiqueta <input> cuyo atributo type tiene el valor url.
URL:
Actualmente (octubre de 2019), los navegadores sólo comprueban que el texto escrito empiece
por http: o https:, pero no obligan a que las URL sean sintácticamente válidas.
En los teléfonos móviles, al escribir en una caja de texto de tipo url se adapta ligeramente el
teclado de texto, mostrándose el carácter /.
Las cajas de texto de una sola línea específicas para direcciones de correo
electrónico se crean mediante una etiqueta <input> cuyo atributo type tiene el
valor email.
Correo:
Actualmente (octubre de 2019), los navegadores sólo comprueban que el texto escrito contenga
una arroba @ y no contengan caracteres no permitidos, pero no obliga a que las direcciones sean
válidas.
En los teléfonos móviles, al escribir en una caja de texto de tipo email se adapta ligeramente el
teclado de texto, mostrándose el carácter @.
Las cajas de texto de una sola línea específicas para fechas (días, meses,
años) se crean mediante una etiqueta <input> cuyo atributo type tiene el valor
date. El dato se envía con el formato AAAA-MM-DD donde AAAA es el número de año, MM el
número de mes y DD el número de día.
15 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Fecha:
Las cajas de texto de una sola línea específicas para meses (y años) se
C
crean mediante una etiqueta <input> cuyo atributo type tiene el valor month.
El dato se envía con el formato AAAA-MM donde AAAA es el número de año y MM el número de
mes.
Mes:
Nota: Firefox no muestra no muestra un control específico para seleccionar el mes y el año, como
se comenta en la lección de diferencias entre navegadores.
<input week>
Semana: <input type="week">
Las cajas de texto de una sola línea específicas para semanas (y años) se
C
crean mediante una etiqueta <input> cuyo atributo type tiene el valor week.
El dato se envía con el formato AAAA-WSS donde AAAA es el número de año y SS el número de
semana.
Semana:
Nota: Firefox no muestra no muestra un control específico para seleccionar la semana y el año,
como se comenta en la lección de diferencias entre navegadores.
Las cajas de texto de una sola línea específicas para tiempos (horas, minutos)
se crean mediante una etiqueta <input> cuyo atributo type tiene el valor time. El
dato se envía con el formato HH-MM donde HH son las horas y MM los minutos.
16 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Hora:
Las cajas de texto de una sola línea específicas para fechas (días,
meses, años, horas y minutos) se crean mediante una etiqueta <input>
cuyo atributo type tiene el valor datetime-local. El dato se envía con el formato AAAA-MM-DDTHH-
MM donde AAAA es el número de año, MM el número de mes, DD el número de día, HH son las
horas y MM los minutos.
Nota: Firefox no muestra no muestra un control específico para seleccionar la fecha y hora, como
se comenta en la lección de diferencias entre navegadores.
Casilla 1
Casilla 1
Las casillas de verificación sólo se envían si se han marcado. El atributo value contiene el valor
que envía el formulario si la casilla de verificación está marcada. Si el atributo value no está
establecido, el formulario envía el valor on.
17 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Casilla de verificación
Casilla de verificación
Los botones radio se crean mediante una etiqueta <input> cuyo atributo type
tiene el valor radio.
Opción 1
Lo botones radio que tienen el mismo atributo name forman un grupo, es decir, que si se marca
uno de ellos se desmarca automáticamente el resto.
Opción 1
Opción 2
Opción 3
Si los atributos name no tienen el mismo valor, los botones radio son independientes (al marcar
uno no se desmarca el otro):
Opción 1
Opción 2
Los botones radio sólo se envían si se han marcado. El atributo value contiene el valor que envía
el formulario si el botón radio está marcado.Si el atributo value no está establecido, el formulario
envía el valor on, así que para poder saber cuál ha sido la opción elegida por el usuario es
necesario establecer con valores distintos los atributos value de todos los elementos de un botón
radio.
18 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Hombre Mujer
Hombre Mujer
Si uno de los botones tiene el atributo checked con el valor checked, el botón aparece marcado de
forma predeterminada.
Opción 1
Opción 2
Una vez se ha hecho clic en uno de los botones radio, siempre habrá una opción seleccionada.
Para desactivar un botón radio, se necesita un botón Reset.
Opción 1
Opción 2
El inconveniente del botón Reset es que reinicia todos los controles del formulario. Este problema
no tiene una solución sencilla. Algunos recomiendan incluir en los botones radio una opción
neutra, de manera que el usuario pueda cambiar su respuesta sin tener que reiniciar todo el
formulario. El problema es que el usuario puede interpretar esa opción como una opción más y
elegirla a propósito, por lo que se recomienda valorar en cada caso la mejor solución. Quizás en
formularios con pocos controles no merezca la pena incluir esa opción neutra, y hacerlo sólo en
formularios con muchos controles en los que el usuario tendría que volver a completar todo el
formulario si utiliza el botón Reset
19 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Nombre:
Opción 1
Opción 2
Sin respuesta
Elija un color:
El atributo value permite especificar un color inicial. El color se debe indicar en formato
hexadecimal (#RRGGBB).
Elija un color:
<input range>
Rango: <input type="range">
El control de rango se crea mediante una etiqueta <input> cuyo atributo type
tiene el valor range. El rango de valores predeterminado es de 0 a 100 (valores
enteros).
Indique su nivel:
20 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Los atributos min, max y step permiten elegir respectivamente el valor mínimo, el máximo y el
incremento.
El atributo list debería permitir añadir etiquetas al control, pero actualmente (octubre de 2019)
ningún navegador lo hace.
El selector de archivo se crea mediante una etiqueta <input> cuyo atributo type
tiene el valor file.
Tradicionalmente, los navegadores no han admitido el atributo value en el selector de archivo por
motivos de seguridad, ya que podría utilizarse para "robar" ficheros al usuario sin su autorización.
La recomendación HTML 5 indica que el atributo value se puede utilizar para seleccionar
selectores de archivos distintos al general, pero los navegadores no parecen utilizar este atributo.
21 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
El control de tipo imagen inserta una imagen que funciona como un botón
(aunque los navegadores no le dan relieve como a los botones). Al hacer clic en
un punto de la imagen se envía el formulario (como si se hubiera pulsado un botón submit) y se
envían las coordenadas del punto en el que se ha hecho clic (junto con los valores de los otros
controles del formulario).
Este control debe incluir siempre el atributo alt (con un valor no vacío), para indicar el texto que
deben mostrar los navegadores si la imagen no está disponible. Es importante recordar que esta
obligatoriedad no existe en el caso de la etiqueta de imagen <img>, en la que este atributo está
aconsejado, pero no es obligatorio.
El ejemplo siguiente es un pequeño juego en el que se utilizan las coordenadas recibidas para
calcular si el usuario ha hecho clic en el punto negro del dibujo.
Si se define el atributo value, Microsoft Edge envía tanto las coordenadas como el nombre del
control con el valor del atributo value, pero Firefox y Google Chrome no lo hacen, como se
comenta en la lección de diferencias entre navegadores.
22 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
El control oculto se crea mediante una etiqueta <input> cuyo atributo type tiene
el valor hidden. Lógicamente, los navegadores no muestran estos controles en la
pantalla (aunque pueden verse en el código fuente).
Los controles ocultos se pueden utilizar, por ejemplo, para dividir en varias páginas un formulario
largo. El problema de dividir en varias páginas es que cada página es independiente de las demás
y HTML no permite relacionar una con otra por lo que no se sabría que la información enviada en
el segundo formulario completa la del primero (los lenguajes de programación de servidor, como
PHP, sí que disponen de mecanismos para relacionar unas páginas con otras, por ejemplo
mediante cookies o sesiones). Una solución es guardar en el segundo formulario la información
enviada en el primer formulario en controles ocultos, de manera que cuando el usuario envía el
segundo formulario, está enviando a la vez la información del primero y así sucesivamente en los
siguientes formularios.
Escriba su nombre:
Las cajas de texto de varias líneas se crean mediante la etiqueta <textarea>. Los
atributos obligatorios rows y cols establecen el número de filas y columnas
iniciales de la caja, aunque los navegadores permiten modificarlo arrastrando la esquina inferior
23 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
derecha.
24 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
El valor que se envía es el texto que aparece en el menú, salvo si el elemento <option> contiene el
atributo value.
Si ningún elemento posee el atributo selected, los navegadores muestran la primera opción del
menú.
25 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Cuatro
El atributo multiple permite elegir varias opciones simultáneamente (con ayuda de la tecla
Control o Mayúsculas). En este caso el atributo name debe incluir corchetes ([]) para que se
puedan enviar en su caso varios valores en forma de matriz.
26 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Datos personales
Nombre:
Edad:
Cultura general
Relación implícita
27 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Por ejemplo, en el caso de una casilla de verificación, la etiqueta <label> permite que la casilla se
marque o desmarque haciendo clic en el texto, como se muestra en los ejemplos siguientes:
Casilla 1
Casilla 1
En el caso de la cajas de texto <input type="text">, la etiqueta <label> permite que el cursor se
sitúe en la caja de texto haciendo clic en el texto, como se muestra en los ejemplos siguientes:
Nombre:
Nombre:
Se dice que la relación es explícita cuando la etiqueta <label> contiene el atributo for, que indica el
control afectado (el control tiene entonces que tener establecido el atributo id).
Por ejemplo, en el caso de una casilla de verificación, la etiqueta <label> permite que la casilla se
marque o desmarque haciendo clic en el texto, como se muestra en los ejemplos siguientes:
Casilla 1
Casilla 1
En el caso de la cajas de texto <input type="text">, la etiqueta <label> permite que el cursor se
sitúe en la caja de texto haciendo clic en el texto, como se muestra en los ejemplos siguientes:
Nombre:
28 de 29
Formularios. HTML. Páginas web HTML y hojas de estilo CSS. Bartolo... https://www.mclibre.org/consultar/htmlcss/html/html-formularios.html
Nombre:
Sexo
Hombre
Mujer
Esta página forma parte del curso Páginas web HTML y hojas de estilo CSS por Bartolomé
Sintes Marco
que se distribuye bajo una Licencia Creative Commons Reconocimiento-CompartirIgual 4.0
Internacional (CC BY-SA 4.0).
29 de 29