Pular para o conteúdo principal

🧠 SQL Não é Código: É Raciocínio (Guia Completo com JOIN e GROUP BY)

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

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: ...

🧠 SQL Não é Código: É Raciocínio (Guia Completo com JOIN e GROUP BY)

🧠 SQL Não é Código: É Raciocínio SQL não é sobre escrever código. É sobre pensar em dados. 🔄 A Virada de Chave Resultado → Dados → Filtro → Conexões 🧱 Exemplo id nome cidade 1 João SP 2 Maria RJ SELECT nome FROM clientes WHERE cidade = 'SP'; 🔗 JOIN SELECT clientes.nome, pedidos.valor FROM clientes JOIN pedidos ON clientes.id = pedidos.cliente_id; 📊 GROUP BY SELECT clientes.nome, SUM(pedidos.valor) FROM clientes JOIN pedidos ON clientes.id = pedidos.cliente_id GROUP BY clientes.nome; 💡 Conclusão Você define o resultado. O banco faz o resto. Continuar lendo × Anúncio dos nossos parceiros Fechar e continuar