Antes de escribir lógica personalizada, aprovecha lo que HTML ya ofrece de serie. Con los atributos correctos, el navegador valida automáticamente sin que escribas una sola línea de JavaScript.
requiredEl campo no puede estar vacío:
minlength / maxlengthDefine la longitud mínima o máxima del texto:
type="email" / type="url" / type="number"El navegador valida el formato automáticamente:
patternValida contra una expresión regular:
Una vez tienes esos atributos, puedes controlar el flujo desde JS con dos métodos clave.
checkValidity()Devuelve true si el formulario es válido, false si no.
No muestra ningún mensaje, solo comprueba.
reportValidity()Igual que checkValidity, pero además muestra los mensajes de error nativos del navegador al usuario.
Una práctica habitual es usar checkValidity() para decidir qué hacer, y reportValidity() solo para informar al usuario cuando hay errores:
La validación nativa:
Luego, sobre esta base, puedes añadir reglas personalizadas para casos que HTML no cubre.
submitcheckValidity() al enviarreportValidity()Formulario válido en #estado-validacionValidar bien no es molestar al usuario: es guiarlo con precisión.