Clase 5 - Formularios
Clase 5 - Formularios
Seguramente, en algún momento, usando un sitio web nos encontramos con algo así:
Introducción
O con algo así:
Clase 5: Formularios
Formularios
Estructura básica de la configuración del tag <form> con los atributos detallados
anteriormente. La generación del tag se suele hacer en una sola línea.
Adicionalmente incorpora un h1 dentro del formulario para que nos quede de la siguiente forma:
Input types
¡Atención!
A partir de aquí necesitaremos integrar una herramienta adicional
a nuestro aprendizaje, que nos facilite la mejora de la interfaz
básica que provee HTML.
los elementos <input> del tipo text, sino también para los
for contenido
Asocia el label con un campo por su Contiene el texto que vamos a mostrar. Si el usuario
propiedad id. hace clic en el texto, el cursor irá al campo asociado.
<label for="nombre">Nombre:</label>
html
<input type="text" name="nombre" id="nombre">
id del campo
Para que el label quede asociado, el campo a asociar debe poseer
un id con el mismo valor que se usó en el for del label.
El elemento <label>
Por lo general, cada campo o grupo de campos tendrá su label asociado.
Cuando el usuario haga click en el label, se activará automáticamente el campo
que corresponda.
<label for="telefono">Edad:</label>
<input type="tel" name="edad" id="telefono">
</form>
Ingreso de datos
Destino del Descripción
hipervínculo
Permite el ingreso de direcciones de correo electrónico, esperando validar al menos un punto (.) y una
email
arroba (@) en el texto ingresado.
Permite el ingreso de direcciones web, esperando validar al menos una estructura con punto (.), http o
url
https, dos puntos (:) y la doble barra (//). Es bastante estricta en el formato de ingreso de una URL.
password Permite el ingreso de texto alfanumérico, mostrando en su lugar caracteres del tipo asterisco (*).
search Permite el ingreso de caracteres alfanuméricos, con una estructura similar a un campo de búsqueda.
Permite el ingreso de caracteres limitados a los propios de un número telefónico: números entre (0-9),
tel
guiones (-), espacios, el signo más (+), paréntesis, el caracter asterisco (*) y el caracter numeral (#).
● La etiqueta <label> para informarle al usuario que debe ingresar su nombre. La misma deberá tener el atributo for
con el valor nombre.
● La etiqueta <input> con atributo type con el valor text (para que el usuario pueda ingresar su nombre) y el
atributo id con el valor nombre. Por último, también debemos declarar el atributo name con el valor nombre ya que
si este atributo no figura, no se enviará el campo como resultado.
Recordemos que si están bien configurados los atributos for de la etiqueta <label> y el atributo id de la etiqueta <input>,
al hacer click en el <label>, el cursor para escribir se posicionará automáticamente en el <input> relacionado.
Nuestro primer formulario parte 2
El resultado deseado será de la siguiente forma::
Nuestro primer formulario parte 3
Queremos tener tres campos para que el usuario pueda ingresar un nombre, un e-mail y una contraseña. Deberemos usar
las siguientes etiquetas:
Los tres <input> deberán tener el atributo name declarado, con los valores nombre, email y password para que la
información efectivamente viaje al enviar el formulario.
Nuestro primer formulario parte 3
El resultado deseado será de la siguiente forma:
Input numéricos
Ingreso de datos
Destino del Descripción
hipervínculo
date Permite el ingreso de una fecha. Despliega un calendario para su rápida selección.
datetime Igual que el type=”date”, pero agrega la posibilidad de configurar hora y minutos.
time Permite el ingreso de hora y minutos, también a través de una interfaz de configuración rápida.
range Permite el ingreso de un rango numérico, entre un valor mínimo y máximo predefinido.
Input numéricos
HTML5 cuenta también con <input>
que soportan el ingreso de datos
del tipo numéricos, como ser:
● number
● date
● datetime
● time
● week
● month
● year
● range
El input de fecha
Nos permite ingresar una fecha incluyendo año, mes y día.
Para crear un elemento de tipo date usamos un input a cuyo atributo type le
damos el valor date.
Dentro de los atributos del elemento, la fecha siempre se formatea como
aaaa-mm-dd, por ejemplo 2020-10-25. Por fuera tomará el formato que
corresponda según el idioma del usuario.
value max
Si necesitamos mostrar una fecha por Es opcional. Nos permite definir
defecto, usamos el atributo value. la fecha máxima que puede ser
ingresada.
Cómo se ve en el navegador
Los inputs de tipo date se van a ver diferente en cada navegador, pero el
aspecto general es parecido al siguiente:
💡En ninguno de los casos, los botones requieren de una configuración adicional.
El atributo type de cada botón le indica al navegador web qué función cumplen, y
es el navegador web quien se ocupa de ejecutar las acciones asociadas.
Nuestro primer formulario parte 4
Para este ejercicio tenemos un formulario ya definido que está casi completo. Queremos agregar algo fundamental que le
está faltando:
● un botón que diga "ENVIAR" para que el usuario pueda, efectivamente, enviar sus datos.
Y para establecer restricciones específicas sobre algunos tipos de datos a ingresar, contamos
con el atributo pattern. Este permite ingresar una estructura que limita aún más el tipo de
dato a ingresar, basándose en expresiones regulares: RegExp.
Las expresiones regulares nos ayudan a definir, por ejemplo, que una contraseña deba
cumplir con el ingreso de mayúsculas, minúsculas, caracteres especiales, y números, además
de un mínimo y/o máximo de caracteres.
Validaciones y restricciones
El aprendizaje de expresiones regulares lleva un tiempo
pero es muy útil, además de servirnos para que sean
aplicadas en cualquier otro lenguaje de programación.
Si quisiéramos definir un <input>, y que una persona El intérprete HTML del motor web se ocupará
elija su nombre de usuario bajo una estructura de 5 a 15
de notificar, de manera genérica, que dicho
caracteres alfabéticos, en minúsculas, entonces
<input> debe respetar un formato específico…
debemos definir el patrón especificado en la imagen.
Mailthis.to
Una API web que nos permite definir en el
atributo action, la URL de procesamiento de
los datos de nuestro formulario, para que
esta información llegue a una dirección de
correo electrónico específica.
Servicios freemium para el envío de datos
formsubmit.co
Otra API web alternativa, con el mismo
objetivo que propone Mailthis.to
También, al utilizar el servicio por primera vez, puede Cuando el servicio comience a funcionar, recibiremos un
que nos solicite validar previamente nuestra identidad, Email por cada vez que se complete el formulario,
al email elegido. Estemos atentos porque este email de similar a esta imagen.
validación, puede caer en la casilla de SPAM de dicha
cuenta.
El elemento <select> y sus <option>
El elemento <select>
Este elemento nos permite agregar un componente que muestra opciones.
Como el resto de los campos, debe llevar el parámetro name para enviarse.
value selected
Es el valor que será enviado por el formulario. Es opcional, se encarga de preseleccionar la opción.
Contenido de la opción
Es lo que verá el usuario al desplegar el select.
Nuestro primer formulario parte 5
Vamos a crear un pequeño campo con un desplegable para que el usuario pueda seleccionar su función:
● Para eso, deberemos crear una etiqueta <select> con atributo y valor name="job". Dentro del <select>, tendremos
que crear 4 etiquetas <option>, una por cada trabajo, aclarando en cada caso el texto que leerá el usuario:
○ Desarrollador front-end
○ .Desarrollador back-end
○ Desarrollador full-stack
○ Diseñador web
No olvidemos, además, escribir el atibuto value en cada una de las etiquetas <option>..
Nuestro primer formulario parte 5
El resultado deseado será de la siguiente forma:
El elemento tipo checkbox
El checkbox
Representa una opción ⏹, al hacer clic en él queda seleccionado y con otro clic
quitamos la selección.
Para crear un elemento de tipo checkbox usamos un input cuyo atributo type
tiene el valor checkbox.
Podemos agrupar elementos de tipo checkbox y, en ese caso, se podrán elegir
múltiples opciones del conjunto. Para agruparlos, todos los elementos deben
tener el mismo valor en el atributo name.
name checked
Para que el usuario pueda seleccionar más de una opción, Es opcional, se encarga de
tenemos que asignarle el mismo nombre a todos los preseleccionar la opción.
inputs de tipo checkbox que sean del mismo grupo.
Un uso particular
Un uso particular del checkbox es utilizarlo para recolectar información que
responde a preguntas con respuestas como sí/no porque permite tildar o
destildar en un solo elemento.
En ese caso no es necesario agregar un valor, ya que, en caso de seleccionarse
la opción, llegará con el valor “on”.
name checked
Para que el usuario pueda seleccionar solo una opción Es opcional, se encarga de
tenemos que asignarle el mismo nombre a todos los preseleccionar la opción.
inputs de tipo radio que sean del mismo grupo.
Cómo se ve en el navegador
Los inputs de tipo radio se van a ver de la siguiente manera:
Atención: Para poder averiguar, luego, qué es lo que eligió el usuario, no debemos olvidarnos de agregarle el atributo
value a cada <input>.
Nuestro primer formulario parte 7
El resultado deseado será de la siguiente forma:
El elemento tipo color
Otros Input Types
multiple
Por defecto solo permite un archivo, si deseáramos
aceptar más de uno, usamos multiple.
Cómo se ve en el navegador
Los inputs de tipo file se van a ver de la siguiente manera:
Formato/Extensión Descripción
.pdf Para archivos mucho más específicos, como ser el formato PDF, TXT, o tal
.txt vez alguno personalizado, definimos directamente un punto más la
.abc extensión esperada.
Nuestro primer formulario parte 8
Queremos crear unos campos para que el usuario cargue su avatar:.
A la izquierda
del campo
Situar correctamente las etiquetas label
Detrás del campo para los tipo:
● checkbox (multiselección)
● radio button (excluyente) Detrás del campo
Etiquetar los controles de forma correcta
label for
La relación entre la etiqueta y el control del
formulario al que pertenece debe estar
siempre asociada con for.
● Para los button en los que su contenido se usa como una etiqueta.
Usar etiquetas de agrupamiento
Utilizamos las etiquetas de agrupamiento cuando sea necesario y/o aclaratorio,
por ejemplo:
● Agrupamos semánticamente un número de controles del formulario
mediante el campo fieldset, como en una agrupación de opciones de
radios o checks.
<fieldset>
<legend>Tipo de equipo</legend> <br />
<input id="pc" type="radio" name="rb3" value="radiobutton">
html <label for="pc">PC</label>
<input id="laptop" type="radio" name="rb3" value="radiobutton">
<label for="laptop">Laptop</label>
</fieldset>
Identificación correcta de campos obligatorios