- los elementos de tipo
input
soninline
. <input />
no tiene tag de cierre.- usamos el atributo
type
para determinar el tipo de campo, según el contenido y formato. - podemos usar
input
s de forma independiente (si sólo nos interesa leer sus valores), pero si es información que queremos enviar/pedir de algún lado, necesitamos agruparlos dentro de unform
. - un
form
funciona como un container de inputs, para enviar/requerir ciertos datos, en un único request. - los formularios nos sirven para recolectar input.
- asociar las
label
s correspondientes a cada input:
<label for='full-name'>Name</label>
<input id='full-name' name='full-name' type='text'/>
- setear el atributo
action
del form para decir a dónde queremos enviar los datos (URL). - setear el atributo
name
del input para identificar los datos que enviamos en el form.⚠️ los valores del atributoname
deben respetar los nombres de parámetros esperados por la API que estemos usando, sino va a fallar el submit.
<form action="http://www.google.com/search" method="get">
<input type="search" id="search-box" name="q" placeholder="Search..." autocomplete="on" />
<button type="submit">Search with Google</button>
</form>
Creating Autocomplete Dropdowns with the Datalist Element
- es muy recomendable hacer un wireframe del form antes de empezar a codearlo, al menos una versión lo-fi.
- setear
label
einput
asociado siempre en el mismo orden, para ser consistentes (y chequear que los atributosid
yfor
coincidan). - setear el atributo
required
para los campos que sean obligatorios (<input required .../>
) - si el input espera un mail, usar el type
email
. - elegir el tipo de input más apropiado en cada caso, también suma a la accesibilidad/ux.
⚠️ si usamos el métodoget
para el formulario, los datos de los inputs van a quedar expuestos en la URL. Suele utlizarse para búsquedas.⚠️ si vamos a enviar datos (sobre todo datos sensibles), setear el atributomethod
del form comopost
. De esta forma, los datos se agregan albody
del request y no se muestran en la URL (ej: passwords).
<form action="https://google.com" method="post">
...
</form>