Pular para o conteúdo principal

Canal do telegram com Varios cursos gratuitos de programação

Como Criar Formulários HTML5 Semânticos com Validação e Envio ao Backend

Criando formulários com HTML5

Como Criar Formulários HTML5 Semânticos com Validação e Envio ao Backend

Os formulários são parte essencial de qualquer site moderno, permitindo que usuários enviem informações, realizem cadastros, façam login ou interajam com o conteúdo. No HTML5, surgiram novas tags, atributos e boas práticas que tornam os formulários mais semânticos, acessíveis e fáceis de validar.

Por que usar formulários semânticos?

A semântica no HTML ajuda tanto os mecanismos de busca quanto tecnologias assistivas a compreenderem o significado do conteúdo. Isso melhora a acessibilidade, a indexação e a experiência do usuário. Além disso, navegadores modernos oferecem suporte nativo para validações simples.

Estrutura básica de um formulário semântico em HTML5

O HTML5 introduziu novos tipos de campos que tornam os formulários mais inteligentes, como email, url, number, date, entre outros.



<form action="/api/contato" method="POST">

  <fieldset>

    <legend>Formulário de Contato</legend>

    <label for="nome">Nome:</label>

    <input type="text" id="nome" name="nome" required minlength="3">

    <label for="email">Email:</label>

    <input type="email" id="email" name="email" required>

    <label for="mensagem">Mensagem:</label>

    <textarea id="mensagem" name="mensagem" required></textarea>

    <button type="submit">Enviar</button>

  </fieldset>

</form>

    

Validação com HTML5

A validação nativa do HTML5 permite verificar se os campos foram preenchidos corretamente antes mesmo de enviar os dados ao servidor. Você pode usar atributos como:

  • required: torna o campo obrigatório.
  • minlength e maxlength: definem limites de caracteres.
  • pattern: aceita expressões regulares para validar formatos.
  • type: ajusta automaticamente a validação de acordo com o tipo (ex.: email exige um "@" válido).


<input type="tel" name="telefone" pattern="[0-9]{2}-[0-9]{4,5}-[0-9]{4}" 

       placeholder="Ex: 11-98765-4321" required>

    

Validação com JavaScript

Embora o HTML5 já ofereça recursos de validação, muitas vezes é útil adicionar camadas extras com JavaScript para personalizar mensagens ou integrar com frameworks.



const form = document.querySelector("form");

form.addEventListener("submit", function(event) {

  if (!form.checkValidity()) {

    event.preventDefault(); // Impede o envio se inválido

    alert("Por favor, preencha todos os campos corretamente.");

  }

});

    

Enviando dados para o backend com Fetch API

Para enviar informações a um backend de forma assíncrona e obter uma resposta sem recarregar a página, podemos usar a Fetch API.



const form = document.querySelector("form");

form.addEventListener("submit", async (event) => {

  event.preventDefault();

  const formData = new FormData(form);

  const data = Object.fromEntries(formData.entries());

  try {

    const response = await fetch("/api/contato", {

      method: "POST",

      headers: { "Content-Type": "application/json" },

      body: JSON.stringify(data),

    });

    const result = await response.json();

    alert("Servidor respondeu: " + result.mensagem);

  } catch (error) {

    alert("Erro ao enviar os dados.");

  }

});

    

Conclusão

Criar formulários em HTML5 de forma semântica é fundamental para melhorar a acessibilidade, a indexação no Google e a experiência do usuário. Usando validações nativas, JavaScript e a Fetch API, você consegue criar formulários modernos, seguros e conectados ao backend.

Comentários

Postagens mais visitadas deste blog

Canal do telegram com Varios cursos gratuitos de programação

 [CANAL PRINCIPAL]( https://t.me/tecnodrives ) 🚀 **LISTA DE CURSOS GRATUITOS DISPONÍVEIS NO CANAL!** Entre, aprenda e evolua 📚💡 💻 **Programação e Tecnologia** 🔥 Programação ⚡ Flutter 🐙 Git e GitHub 🟢 NodeJS 📱 React Native ☕ Kotlin 💎 Ruby 🐘 PHP 🧠 TypeScript 💻 C / C++ / C# ☕ Java 🐍 Python ✨ JavaScript 🅰️ Angular 🗄️ Banco de Dados 🧩 Engenharia de Software 🎨 **Design e Edição** 🎨 Figma 🖌️ Photoshop 📊 Power BI 🎭 Design 📈 Excel 🎬 Premier 📰 InDesign 💫 After Effects ✏️ Illustrator 💡 UX / UI 🌍 **Outros** 🗣️ Idiomas 🎓 Alura 💻 B7Web 🎨 Origamid 💀 Hacking 🔗 **Canal Principal:** @tecnodrives 👉 Acesse e veja os conteúdos completos! | [PROGRAMAÇÃO]( https://t.me/+TkbY6DJCnEM2MmRh%20 ) | [FLUTTER]( https://t.me/+6ggVP-EU39ViY2Ix ) | [FIGMA]( https://t.me/+rE7jsLIVYoM4NTZh ) | [GIT E GITHUB]( https://t.me/ImperioDrivegit ) | [PHOTOSHOP]( https://t.me/imperiodrivephotoshop ) | [POWERBI]( https://t.me/+NU879ENirL5mYTQx ) | [DESIGN]( https://t.me/imperiodrivedesign%20 ...