Validação de Formulários com Atributos HTML Nativos

Os navegadores modernos possuem uma validação de formulários interna poderosa, que pode ser usada para garantir que os dados inseridos pelos usuários sejam válidos antes de enviar o formulário. Isso elimina a necessidade de bibliotecas JavaScript pesadas para validação básica. Vamos explorar os principais atributos HTML nativos que você pode usar para validar formulários.


Atributos de Validação Nativos

Aqui estão alguns dos atributos HTML mais úteis para validação de formulários:

1. required

2. type

3. min e max

4. minlength e maxlength

5. pattern

6. step

7. novalidate


Exemplo Completo de Formulário Validado

Aqui está um exemplo de formulário que usa vários atributos de validação nativos:

<!DOCTYPE html>
    <html lang="pt-BR">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Formulário com Validação Nativa</title>
        <style>
            input:invalid {
                border-color: #ff0000;
            }
            input:valid {
                border-color: #00ff00;
            }
        </style>
    </head>
    <body>
        <form>
            <label for="nome">Nome:</label>
            <input type="text" id="nome" name="nome" required minlength="3" maxlength="50">
            <br>
    
            <label for="email">E-mail:</label>
            <input type="email" id="email" name="email" required>
            <br>
    
            <label for="idade">Idade:</label>
            <input type="number" id="idade" name="idade" min="18" max="99" required>
            <br>
    
            <label for="senha">Senha:</label>
            <input type="password" id="senha" name="senha" minlength="8" maxlength="20" required>
            <br>
    
            <label for="website">Website:</label>
            <input type="url" id="website" name="website" placeholder="https://exemplo.com">
            <br>
    
            <label for="cep">CEP:</label>
            <input type="text" id="cep" name="cep" pattern="\d{5}-\d{3}" placeholder="12345-678" required>
            <br>
    
            <button type="submit">Enviar</button>
        </form>
    </body>
    </html>
    

Explicação do Código

  1. Validação Nativa:

  2. Estilos Personalizados:

  3. Mensagens de Erro:


Vantagens da Validação Nativa

  1. Simplicidade:

  2. Desempenho:

  3. Acessibilidade:

  4. Compatibilidade:


Personalizando Mensagens de Erro

Se você quiser personalizar as mensagens de erro, pode usar JavaScript:

document.querySelector('form').addEventListener('submit', (event) => {
        const campo = document.getElementById('cep');
        if (!campo.validity.valid) {
            campo.setCustomValidity('Por favor, insira um CEP válido no formato 12345-678.');
            campo.reportValidity();
            event.preventDefault(); // Impede o envio do formulário
        } else {
            campo.setCustomValidity(''); // Limpa a mensagem de erro
        }
    });
    

Conclusão

A validação de formulários com atributos HTML nativos é uma maneira eficiente e poderosa de garantir que os dados inseridos pelos usuários sejam válidos. Use esses atributos para simplificar seu código e melhorar a experiência do usuário.