Como validar formulário com JavaScript e exibir mensagens de erro com SweetAlert2


Neste tutorial, será apresentado como validar um formulário com JavaScript e exibir mensagens de erro com SweetAlert2.

Primeiramente, será demonstrado como criar o formulário com HTML.

Em seguida, será explicado como validar os dados do formulário com JavaScript.

Por fim, será mostrado como apresentar as mensagens de erro com SweetAlert2.


Download do código fonte desenvolvido na aula: Download

Curso de PHP Developer: Mais Detalhes do Curso

Receber as aulas gratuitas do curso de PHP Developer: Acessar


Para começar, é criado o arquivo index.html, que contém a estrutura básica do HTML e um formulário para cadastrar o usuário, com os campos: nome, e-mail, senha e confirmação de senha.

Também devem ser incluídos o arquivo CSS styles.css, o arquivo JavaScript script.js e o arquivo JavaScript do SweetAlert2.

<!DOCTYPE html>
<html lang="pt-BR">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Celke - Cadastrar Usuário</title>

    <link rel="stylesheet" href="styles.css">
</head>

<body>

    <div class="form-container">

        <h1>Cadastrar Usuário</h1>

        <form name="formuser" action="#" method="POST">

            <input type="text" name="nome" placeholder="Nome completo">
            <input type="text" name="email" placeholder="Melhor e-mail">
            <input type="password" name="senha" placeholder="Senha com mínimo 6 caracteres">
            <input type="password" name="rep_senha" placeholder="Confirmar a senha">
            <input type="submit" onclick="return validar()" value="Cadastrar">

        </form>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    
    <script src="script.js"></script>

</body>

</html>

Criado o arquivo styles.css com um estilo básico para o formulário.

body {
    font-family: Arial, sans-serif;
    background-color: #f4f4f4;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center; /* Centraliza horizontalmente */
}

h1 {
    text-align: center;
    color: #333;
}

.form-container {
    background-color: #fff;
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    max-width: 400px;
    width: 100%;
    margin-top: 50px; /* Adiciona espaçamento no topo */
}

.form-container form {
    display: flex;
    flex-direction: column;
}

.form-container input[type="text"],
.form-container input[type="password"] {
    padding: 10px;
    margin-bottom: 15px;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: 16px;
}

.form-container input[type="submit"] {
    background-color: #28a745;
    color: white;
    padding: 10px;
    border: none;
    border-radius: 5px;
    font-size: 16px;
    cursor: pointer;
}

.form-container input[type="submit"]:hover {
    background-color: #218838;
}

.form-container input::placeholder {
    color: #888;
}

Para finalizar, é criado o arquivo script.js com a validação do formulário em JavaScript.

function validar(){

    // Receber os dados do formulário
    const nome = formuser.nome.value;
    const email = formuser.email.value;
    const senha = formuser.senha.value;
    const rep_senha = formuser.rep_senha.value;

    // Validação do Nome
    if(!validarNome(nome)){
        exibirAlerta('warning', 'Nome inválido', 'Preencha o campo nome!');
        return false;
    }

    // Validação do E-mail
    if(!validarEmail(email)){
        exibirAlerta('warning', 'E-mail inválido', 'Preencha o campo e-mail!');
        return false;
    }

    // Validação do Senha
    if(!validarSenha(senha)){
        exibirAlerta('warning', 'Senha inválida', 'Preencha o campo senha com mínimo 6 caracteres!');
        return false;
    }

    // Verificar se as senhas coincidem
    if(senha !== rep_senha){
        exibirAlerta('error', 'Senha senhas coincidem', 'O campo confirmação da senha deve ser igual à senha!');
        return false;
    }

    // Mensagem de sucesso se todas as validações passarem
    exibirAlerta('success', 'Tudo certo!', 'Formulário validado com sucesso.');

    // Retornar falso só para apresentar o alerta que passou pela validação
    return false;

    // return true;  // O formulário pode ser enviado

}

function validarNome(nome){
    return nome.trim().length > 0; // Verifica se o nome não está vazio
}

function validarEmail(email){
    const regexEmail = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; // Expressão regular para validar o formato de e-mail
    return regexEmail.test(email);
}

function validarSenha(senha){
    return senha.length > 5; // Verifica se a senha tem mais de 5 caracteres
}

function exibirAlerta(icone, titulo, texto){
    Swal.fire({
        icon: icone,
        title: titulo,
        text: texto,
      });
}

Baixar o código-fonte completo do projeto.

Bom, era isso. Espero que o tutorial tenha sido útil!