Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Não entendi a função do método setCustomValidity

Não entendi porque a professora usou esse método, se já havia mensagens de erro para o caso de 'customError' na const mensagens e são essas mensagens que estão sendo exibidas e não a string passada em campo.setCustomValidity().

2 respostas
solução!

Oi, tudo bem?

O método setCustomValidity() é usado para definir uma mensagem de erro personalizada que será exibida quando o campo do formulário não for válido. Quando você passa uma string para esse método, você está basicamente dizendo ao navegador: "Se este campo não for válido, por favor, mostre essa mensagem específica para o usuário".

No código que você mencionou, a professora usou o método setCustomValidity() para definir mensagens de erro personalizadas para as funções ehMaiorDeIdade e ehUmCPF. Ela passou uma string para setCustomValidity() em cada uma dessas funções, o que significa que essas mensagens específicas serão exibidas se o campo não for válido de acordo com as regras definidas nessas funções.

Agora, você pode estar se perguntando: "Mas por que a professora usou setCustomValidity() se ela já tinha mensagens de erro definidas na constante mensagens?"

A resposta é que, embora a constante mensagens contenha mensagens de erro, essas mensagens não são automaticamente associadas a nenhum campo específico do formulário. Em outras palavras, o navegador não sabe quando deve mostrar essas mensagens. É aí que entra o setCustomValidity(). Ao usar esse método, a professora está dizendo ao navegador quando exibir as mensagens de erro personalizadas.

Por exemplo, na função ehMaiorDeIdade, a professora usou setCustomValidity('O usuário não é maior de idade'). Isso significa que, se o campo de data de nascimento não passar na validação da função ehMaiorDeIdade, o navegador mostrará a mensagem "O usuário não é maior de idade".

Lembrando que, a ideia é que você possa personalizar as mensagens de erro que são mostradas para os usuários quando eles inserem dados inválidos em um formulário.

Um abraço e bons estudos.

Muito obrigado pela explicação. Entendi agora.