Pular para o conteúdo principal

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

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

Login com JavaScript

Procurando na web encontrei um código de login em javascript muito criativo onde o usuário inseria o nome de  usuário e a senha, então o script procurava a página usuariosenha.html , por exemplo se o usuário fosse "joc" e a senha "123" exixtiria página joc123.html. Deste modo o usuário só conseguiria acessar a página web se acertasse exatamente o nome da página, daí cada usuário teria uma página, o problema do script é que a senha ficava exposta, pois ficava salva na barra de endereço, então procurando aperfeiçoar criei um script melhorado, resolvendo a questão da segurança, desta vez a página aparesse em um iframe, assim não ficará mais salvo no histórico do navegador. abaixo segue o código: index.html: <html> <head> <title>logar</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript"> function logando() { var login = document.form...

Tutorial jogo de carro no Flash Mx

Postei recentemente no youtube um vídeo tutorial sobre criação de um game de carro em flash mx, e o usuário: juninhosantosMr reclamou o script, tentei responder mas estava dando erro, então postarei aqui os códigos, seguem abaixo: carro: onClipEvent(load){ speed = 0; } onClipEvent (enterFrame) { if (Key.isDown(Key.UP)) { speed += 0.5; } if (Key.isDown(Key.DOWN)) { speed += -0.2; } if (Math.abs(speed)>10) { speed *= .7; } if (Key.isDown(Key.LEFT)) { _rotation -= 12; } if (Key.isDown(Key.RIGHT)) { _rotation += 12; } speed *= .98; x = Math.sin(_rotation*(Math.PI/180))*speed; y = Math.cos(_rotation*(Math.PI/180))*speed*-1; if (!_root.land3.hitTest(_x+x, _y+y, true)) { _x += x; _y += y; } else { speed *= -.10; } } chegada: onClipEvent (enterFrame) { if (_root.chegou, hitTest(_root.carro)) { _root.gotoAndPlay(2); } } Para acompanhar os três vídeos tutorias: vídeo 1: http://www.youtube.com/watch?v=MYw1H7THo_U&feature=related vídeo 2: ...