Formulários e entradas

Quase todo site que faz algo por você, uma caixa de busca, um login, um checkout, um campo de comentário, é construído em um formulário. Um formulário é como uma página deixa de falar para o visitante e começa a escutar: coleta o que alguém digita, marca ou seleciona, e entrega esses dados para serem processados. Este capítulo é sobre o HTML que torna isso possível.
O elemento form
Um formulário é um contêiner que agrupa as coisas que um visitante preenche. Você envolve suas entradas e um botão dentro de um elemento <form>, e o trabalho do formulário é reunir tudo e enviar quando o visitante terminar.
<form>
<label>Seu nome</label>
<input>
<button>Enviar</button>
</form>Pense como um formulário de papel que você preenche no consultório do médico. A folha contém todas as caixas, você escreve em cada uma e, no final, devolve a folha inteira de uma vez. O elemento <form> é essa folha.
<form> é o contêiner que mantém suas entradas e um botão, e envia tudo junto quando alguém envia. Imagine o formulário de papel em uma mesa: uma folha, muitas caixas, devolvidas todas de uma vez. Envolva seus campos em um formulário e você consegue esse comportamento de reunir e enviar sem fazer nada complicado. Entradas e rótulos
Um <input> é a caixa em que um visitante digita. Por si só, porém, uma entrada é uma caixa vazia sem nenhuma pista do que é. É para isso que serve um rótulo: é a parte de texto que diz ao visitante o que colocar na caixa.
<label for="city">Cidade</label>
<input id="city">Toda entrada precisa de um rótulo. Você conecta os dois dando à entrada um id e apontando o rótulo para ela com for, usando a mesma palavra em ambos. Uma vez que estão vinculados, clicar no rótulo coloca o cursor na caixa, que é uma pequena gentileza que torna o formulário mais fácil de usar para todos.
<input> é a caixa em que as pessoas digitam, e o <label> é o texto dizendo a elas o que vai lá. Vincule-os com for e id correspondentes e clicar no rótulo pula direto para a caixa. Dê a cada entrada um rótulo; uma caixa solitária sem palavras ao lado confunde apenas as pessoas. Outros controles
Nem tudo é uma caixa de texto simples. Algumas perguntas são melhor respondidas marcando, escolhendo ou selecionando de uma lista. Uma caixa de seleção (uma checkbox) é uma chave ligado-ou-desligado, e um dropdown deixa alguém escolher uma opção de várias.
<label>
<input type="checkbox"> Envie-me o boletim informativo
</label>
<label for="size">Tamanho</label>
<select id="size">
<option>Pequeno</option>
<option>Médio</option>
<option>Grande</option>
</select>Você não precisa memorizar isso. O ponto por enquanto é que um formulário pode fazer suas perguntas da maneira que for adequada: digite-a, marque-a ou escolha-a de uma lista.
<input type="checkbox">, e um dropdown é um <select> contendo escolhas <option>. Sem necessidade de memorizá-los; o formulário tem mais do que caixas simples quando uma pergunta precisa. Como dados de formulário são nomeados e enviados
Quando um formulário é enviado, cada resposta precisa de um rótulo para que quem a receba saiba de qual caixa veio. Esse rótulo é o name da entrada. Você o define uma vez e ele viaja com o valor.
<label for="city">Cidade</label>
<input id="city" name="city">Se o visitante digitar "São Paulo" nessa caixa, o formulário envia o par "city é São Paulo". O name é como o lado receptor diferencia uma resposta da outra. Uma entrada sem name é deixada de fora do envio inteiramente, então esse pequeno atributo é o que realmente faz os dados aparecer.
name de cada entrada é a etiqueta em sua resposta, para que o receptor saiba que um valor veio da caixa de cidade e não da de e-mail. Configure name e o valor da caixa é enviado como um par rotulado. Esqueça, e esse campo é silenciosamente deixado de fora, o que confunde muitas pessoas a primeira vez que um formulário não envia nada. 
