Abertura de impacto
O formulário nasce no envio
Preencher campos é apenas a coleta. Enviar dados é comunicação real.
Quando o submit é acionado, o navegador valida, empacota e despacha os pares
name=value para o destino definido no action.
Promessa da aula:
Você vai dominar o fluxo completo do formulário: gatilho de envio,
destino dos dados, método HTTP, validação nativa, diferença entre botões
e preparação para integração com backend.
Gatilho de envio
button submit e input submit
O botão submit encerra o estado de coleta e inicia o estado de transmissão.
Antes de enviar, o navegador verifica campos obrigatórios, padrões e tipos como
email.
<button type="submit">Criar Minha Conta</button>
<input type="submit" value="Enviar Mensagem">
- button type="submit": moderno, flexível e permite conteúdo interno.
- input type="submit": tradicional, texto definido pelo atributo value.
- Texto claro: prefira “Confirmar Pagamento” a “Enviar”.
Erro comum:
Usar button sem declarar type. Dentro de um formulário,
isso pode causar comportamento inesperado. Declare sempre.
Destino dos dados
Action explicado em profundidade
O atributo action define a URL que receberá os dados. Ele pode apontar
para uma rota do backend, um arquivo processador, uma API externa ou um destino simulado.
<form action="/cadastro" method="post"></form>
<form action="processa-contato.html" method="post"></form>
<form action="https://exemplo.com/api/contato" method="post"></form>
<form action="#" method="get"></form>
- Caminho relativo: aponta para arquivo ou rota no mesmo projeto.
- URL absoluta: aponta para endereço completo externo.
- action="#": útil para protótipo ou teste sem backend.
- action vazio/ausente: geralmente envia para a própria página.
Limite do HTML:
HTML coleta e envia. Quem processa, salva, autentica e responde é o backend.
Transporte
Submit, action, method, name e value
O fluxo completo funciona assim: o usuário preenche, o submit dispara, o navegador valida,
o method define o transporte e o action define o destino.
<form action="#" method="get">
<label for="busca">Buscar aula</label>
<input type="search" id="busca" name="q" required>
<button type="submit">Pesquisar Aula</button>
</form>
- GET: envia dados na URL. Ideal para buscas e filtros.
- POST: envia dados no corpo da requisição. Ideal para cadastro e login.
- name: vira a chave enviada ao servidor.
- value: vira o valor enviado ao servidor.
- id: conecta label, CSS e JavaScript; não substitui name.
Erro fatal:
Campo sem name não é enviado. Placeholder também não é dado.
Botões profissionais
Submit, button e reset
<button type="submit">Enviar Solicitação Agora</button>
<button type="button">Validar Dados com JavaScript</button>
<button type="reset">Restaurar Formulário Original</button>
- submit: envia o formulário.
- button: não faz nada sozinho; será usado com JavaScript.
- reset: retorna campos ao estado inicial do HTML.
Cuidado com reset:
Em formulários longos, reset pode destruir o trabalho do usuário com um clique acidental.
Use com aviso claro ou evite.
Desafio Mestre
Formulário com Fluxo de Envio HTML
Missão: criar o arquivo formulario-fluxo-envio-html.html
demonstrando controle total sobre gatilho, destino e método de envio.
Requisitos obrigatórios
- Doctype HTML5 e
html lang="pt-BR".
- Head completo com charset, viewport, title e meta description.
- Body com header, main e footer.
- H1 com “Formulário com Fluxo de Envio HTML”.
- Section introdutória explicando submit, action e method.
- Formulário principal com
form, action e method.
- Pelo menos 6 campos com labels conectadas corretamente.
- Uso correto de
id e name.
- Campo text, email, textarea, select, checkbox e radio.
- Campos essenciais com
required.
- Um
button type="submit" com texto claro.
- Um
button type="button" para JavaScript futuro.
- Um
button type="reset" com aviso sobre risco de apagar dados.
- Explicação de submit, button e reset.
- Explicação de action + method e id + name + value.
Quiz com gabarito
15 perguntas para provar domínio
- O que acontece se action for omitido? Envia para a página atual.
- Função de type="reset"? Retornar campos aos valores iniciais.
- button type="button" envia formulário? Não.
- O que é preventDefault? Função JS que impede o envio padrão.
- Onde dados GET aparecem? Na URL.
- Value no input submit define o quê? Texto do botão.
- Action pode ser link externo? Sim.
- Função do name no envio? Identificar a chave do dado para o servidor.
- Botão submit deve ficar onde? Dentro do form, salvo casos avançados.
- O que é URL absoluta? Endereço completo com protocolo.
- Podemos ter dois submits? Sim, com lógica clara no backend.
- O navegador valida o quê antes do submit? required, email, pattern e restrições nativas.
- Reset limpa para qual estado? Estado inicial definido no HTML.
- Quem processa cadastro real? Backend.
- Por que usar action="#"? Para simular envio durante desenvolvimento.
GitHub
Registre seu fluxo de envio
git status
git add .
git commit -m "aula-26: cria formulario com fluxo de envio html"
git push
- git status: verifica o arquivo criado.
- git add .: adiciona as evoluções ao índice.
- git commit: documenta o domínio do fluxo de envio.
- git push: envia para o repositório remoto.
Resumo Mestre
Submit é o motor. Action é o destino.
Sem submit, os dados não partem. Sem action, eles não têm destino. Sem method, o transporte
não está definido. O Mestre domina o fluxo completo: coleta, validação, empacotamento,
transporte e preparação para backend.
Nota final: 10/10 Supremo.
Esta aula está no nível Mestre dos Mestres porque conecta o visual ao funcional e remove
a “mágica” do envio de formulários, entregando controle técnico real sobre o fluxo de dados.