files/en-us/web/api/htmlbuttonelement/validity/index.md
{{APIRef("HTML DOM")}}
The validity read-only property of the {{domxref("HTMLButtonElement")}} interface returns a {{domxref("ValidityState")}} object that represents the validity states this element is in.
A {{domxref("ValidityState")}} object.
The following example demonstrates that a <button> is in an invalid state when a {{domxref("ValidityState/customError", "customError")}} is set; in this state, the validityState's validity property is false, while {{domxref("HTMLButtonElement/checkValidity", "checkValidity()")}} returns true if the button's {{domxref("HTMLButtonElement/type", "type")}} is not "submit", because such buttons are not candidates for constraint validation.
const button = document.getElementById("myButton");
button.setCustomValidity("This button is invalid.");
const validityState = button.validity;
console.log(validityState.valid); // false
console.log(validityState.customError); // true
console.log(button.checkValidity()); // false if the button is of the "submit" type, true otherwise
{{Specifications}}
{{Compat}}