HTML5 incorpora 8 formas de validar los valores introducidos por el usuario o por la aplicaición en los elementos de un formulario.
el objeto que permite acceder a las 8 restricciones es ValidityState al que puede accederse desde cualquier control/elemento de foormulario en un browser que implemente HTML5:
var creditcardnumberCheck = document.myForm.creditcardnumber.validity;
la variable creditcardnumberCheck guarda la referencia al objeto ValidityState del input creditcardnumber. el objeto contiene referencias para acceder a las 8 restricciones de validación y al resultado de la suma de la 8 en conjunto.
ValidityState es un objeto dinámico y su contenido se actualiza con cada cambio del contenido de campo al que se refiere mientras nuestra variable conserve su referencia.
Para consultar el resultado de las 8 restricciones utilizamos
creditcardnumberCheckvalid;que devuleve
true cuando las 8 restricciones son false, y viceversa.
las 8 restricciones que contiene ValidityState son:
true cuando value está vacío en un input con atributo requiredtrue cuando value contiene una cadena que no cumple las las expectativas del tipo de input declarado (number, email, url, etc.)value contiene una cadena que no cumple las restricciones del patrón que contiene patterntrue cuando la longitud de la cadena de value excede el valor del atributo maxlengthtrue cuando value es menor que mintrue cuando value es mayor que maxtrue cuando value no coincide con un múltiplo de steptrue cuando el input de confirmación de password no es igual que el input de passwordsetCustomValidity(message) para que el eleemento de formulario esté dentro del objeto customError. Ejemplo:
passwordConfimationField.setCustomValidity("La contraseña no coincide");
donde passwordConfimationField es la referencia al input de confimación de contraseña del ejemplo citado más arriba.
ejemplo