1
resposta

duvida setCustomValidity

Nao entendi muito bem a funcionalidade do setCustomValidity();

Entendi quando ela colocou campo.setCustomValidity("") pra tirar o campo de erro, mas nao entendi a utilidade dele nos arquivos ehUmCpf e validade-idade, campo.setCustomValidity("Esse cpf nao é válido") e campo.setCustomValidity("Desculpe, mas é permitido para apenas maiores de 18 anos")

poderia explicar melhor pra mim, Obrigado, ótima aula até o momento, só esse detalhe msm que nao entendi

1 resposta

Oi, Sérgio! Tudo bom?

A API de validação de JavaScript compreende os seguintes possíveis erros:

PropriedadeDescrição
customErrorDefina como verdadeiro, se uma mensagem de validade personalizada for definida.
patternMismatchDefinido como verdadeiro, se o valor de um elemento não corresponder ao seu atributo padrão.
rangeOverflowDefinido como verdadeiro, se o valor de um elemento for maior que seu atributo máximo.
rangeUnderflowDefinido como verdadeiro, se o valor de um elemento for menor que seu atributo mínimo.
stepMismatchDefinido como verdadeiro, se o valor de um elemento for inválido por seu atributo de etapa.
tooLongDefinido como verdadeiro, se o valor de um elemento exceder seu atributo maxLength.
typeMismatchDefinido como verdadeiro, se o valor de um elemento for inválido por seu atributo de tipo.
valueMissingDefinido como verdadeiro, se um elemento (com um atributo obrigatório) não tiver valor.
validDefina como verdadeiro, se o valor de um elemento for válido.

Como tanto o CPF quando a idade são validações customizadas, pra nós conseguirmos que esse erro seja detectado, precisamos criar uma mensagem customizada. Ao usar o setCustomValidity na função de verificação deles, eu consigo transformar o erro customError como true, assim barrando o cadastro do usuário.

No final, essa não é a mensagem que aparece na tela (o que pode causar a confusão) do curso, então você poderia colocar qualquer frase dentro desse setCustomValidity que funcionaria igual pro intuito de confirmar pro js que tem um erro ali kkk

Bons estudos!