Importação da Biblioteca JustValidate
Para realizar as validações no nosso formulário, utilizaremos a biblioteca JustValidate. Primeiramente, precisamos importar essa biblioteca para nosso projeto. Acesse a documentação na aba Getting Started e copie a tag <script> com o src correspondente. Em seguida, cole esse script no final do seu arquivo index.html, dentro da tag <body>, na linha 43.
<script src="https://unpkg.com/just-validate@latest/dist/just-validate.production.min.js"></script>
<script src="script.js"></script>
</body>
Inicialização do JustValidate
Após salvar o documento, estamos prontos para iniciar as validações dos campos do formulário. Vamos abrir o arquivo script.js para começar a escrever as validações. Inicializamos o JustValidate dentro do nosso formulário criando uma constante validador, que recebe new JustValidate. Este método requer um parâmetro, que é o id do nosso formulário, no caso, #cadastro-form.
const validador = new JustValidate('#cadastro-form');
Adição de Campos para Validação
Com a inicialização concluída, passamos para a próxima etapa: adicionar os campos do formulário para que o JustValidate possa identificá-los e aplicar as validações. Utilizamos a constante validador e a função addField, que recebe dois parâmetros: o id do campo e uma lista de objetos representando diferentes validações.
validador.addField('#nome', []);
validador.addField('#cpf', []);
validador.addField('#idade', []);
validador.addField('#senha', []);
Validação de Campos Obrigatórios
A primeira regra que implementamos é a obrigatoriedade de preenchimento. No campo #nome, dentro da lista de objetos, adicionamos a regra required e uma mensagem de erro personalizada.
validador.addField('#nome', [
{
rule: 'required',
errorMessage: 'Este campo é obrigatório!'
}
]);
Após isso, aplicamos a mesma regra aos outros campos, copiando o código da regra e colando nas listas de objetos dos campos #CPF, #idade e #senha.
validador.addField('#cpf', [
{
rule: 'required',
errorMessage: 'Este campo é obrigatório!'
}
]);
validador.addField('#idade', [
{
rule: 'required',
errorMessage: 'Este campo é obrigatório!'
}
]);
validador.addField('#senha', [
{
rule: 'required',
errorMessage: 'Este campo é obrigatório!'
}
]);
Validação de Nome Completo
Além da regra de obrigatoriedade, criamos uma segunda regra para o campo #nome, que exige mais de uma palavra (nome e sobrenome). Para isso, utilizamos o Validator do JustValidate, que permite criar regras personalizadas.
validador.addField('#nome', [
{
rule: 'required',
errorMessage: 'Este campo é obrigatório!'
},
{
validator: (value) => {
return value.trim().split(" ").length >= 2;
},
errorMessage: 'Por favor, insira seu nome completo!'
}
]);
Validação de CPF
Agora, vamos realizar a validação do CPF. Não há uma regra que verifique números repetidos no campo de CPF, então precisamos criar uma validação personalizada.
validador.addField('#cpf', [
{
rule: 'required',
errorMessage: 'Este campo é obrigatório!'
},
{
validator: (value) => {
return !/(\d)\1{10}/.test(value.replace(/\D/g, ''));
},
errorMessage: 'Os números do CPF estão repetidos'
}
]);
Validação de Idade
Para a validação de idade, verificaremos se a pessoa tem mais de 18 anos para se cadastrar.
validador.addField('#idade', [
{
rule: 'required',
errorMessage: 'Este campo é obrigatório!'
},
{
rule: 'minNumber',
value: 18,
errorMessage: 'Você deve ter mais de 18 anos para se cadastrar'
}
]);
Validação de Senha
Por fim, falta o campo de senha. A senha precisa ter, no mínimo, oito dígitos, letras maiúsculas, minúsculas, números e caracteres especiais.
validador.addField('#senha', [
{
rule: 'required',
errorMessage: 'Este campo é obrigatório!'
},
{
rule: 'strongPassword',
errorMessage: 'A senha precisa ter 8 dígitos, incluindo letras maiúsculas, minúsculas, número e caracteres especiais'
}
]);
Conclusão das Validações
Com essas regras implementadas, nosso formulário está configurado para validar os campos conforme necessário. Salve o arquivo e verifique se as validações estão funcionando adequadamente no formulário.