Formularios e inputs

Casi todos los sitios web que hacen algo por ti, un cuadro de búsqueda, un inicio de sesión, una compra, un campo de comentarios, está construido sobre un formulario. Un formulario es cómo una página deja de hablar al visitante y comienza a escuchar: recopila lo que alguien escribe, marca o selecciona, y entrega esos datos para que se actúe sobre ellos. Este capítulo trata sobre el HTML que hace que eso sea posible.
El elemento form
Un formulario es un contenedor que agrupa las cosas que un visitante completa. Envuelves tus inputs y un botón dentro de un elemento <form>, y el trabajo del formulario es reunir todo y enviarlo cuando el visitante haya terminado.
<form>
<label>Tu nombre</label>
<input>
<button>Enviar</button>
</form>Piénsalo como un formulario de papel que completas en la oficina de un médico. La hoja contiene todos los cuadros, escribes en cada uno, y al final entregas toda la hoja de una vez. El elemento <form> es esa hoja.
<form> es el contenedor que sostiene tus inputs y un botón, y envía todo junto cuando alguien lo envía. Imagina el formulario de papel en un escritorio: una hoja, muchos cuadros, entregada toda de una vez. Envuelve tus campos en un formulario y obtienes ese comportamiento de recopilación y envío sin hacer nada inteligente. Inputs y etiquetas
Un <input> es el cuadro en el que un visitante escribe. Por sí solo, sin embargo, un input es un cuadro vacío sin idea de para qué es. Eso es para lo que sirve una etiqueta: es el bit de texto que le dice al visitante qué poner en el cuadro.
<label for="city">Ciudad</label>
<input id="city">Cada input necesita una etiqueta. Conectas los dos dándole al input un id y apuntando la etiqueta a él con for, usando la misma palabra en ambos. Una vez que están vinculados, hacer clic en la etiqueta coloca el cursor en el cuadro, que es una pequeña amabilidad que hace que el formulario sea más fácil de usar para todos.
<input> es el cuadro en el que la gente escribe, y la <label> es el texto que les dice qué va ahí. Vincúlalos con for e id coincidentes y hacer clic en la etiqueta salta directamente al cuadro. Dale una etiqueta a cada input; un cuadro solitario sin palabras al lado solo confunde a la gente. Otros controles
No todo es un cuadro de texto simple. Algunas preguntas se responden mejor marcando, eligiendo o seleccionando de una lista. Un cuadro de verificación (una casilla de verificación) es un interruptor de encendido o apagado, y un desplegable permite que alguien elija una opción entre varias.
<label>
<input type="checkbox"> Enviarme el boletín
</label>
<label for="size">Tamaño</label>
<select id="size">
<option>Pequeño</option>
<option>Mediano</option>
<option>Grande</option>
</select>No tienes que memorizar esto. El punto por ahora es que un formulario puede hacer sus preguntas de cualquier forma que se ajuste: escríbela, márcala o elige de una lista.
<input type="checkbox">, y un desplegable es un <select> que contiene opciones <option>. No necesitas memorizarlos; el formulario tiene más que cuadros simples cuando una pregunta lo necesita. Cómo se nombran y se envían los datos del formulario
Cuando se envía un formulario, cada respuesta necesita una etiqueta para que quien la reciba sepa de qué cuadro vino. Esa etiqueta es el name del input. Lo estableces una vez, y viaja con el valor.
<label for="city">Ciudad</label>
<input id="city" name="city">Si el visitante escribe "Buenos Aires" en ese cuadro, el formulario envía el par "city es Buenos Aires". El name es cómo el lado receptor separa una respuesta de otra. Un input sin name se deja fuera del envío completamente, así que este pequeño atributo es el que realmente hace que los datos aparezcan.
name de cada input es la etiqueta en su respuesta, así que el receptor sabe que un valor vino del cuadro de ciudad y no del de correo. Establece name, y el valor del cuadro se envía como un par etiquetado. Olvídalo, y ese campo se deja silenciosamente fuera, que es lo que confunde a mucha gente la primera vez que un formulario no envía nada. 
