files/en-us/web/api/elementinternals/setvalidity/index.md
{{APIRef("Web Components")}}
The setValidity() method of the {{domxref("ElementInternals")}} interface sets the validity of the element.
setValidity(flags)
setValidity(flags, message)
setValidity(flags, message, anchor)
flags {{Optional_Inline}}
: A dictionary object containing one or more flags indicating the validity state of the element:
valueMissing
true if the element has a required attribute, but no value, or false otherwise. If true, the element matches the {{cssxref(":invalid")}} CSS pseudo-class.typeMismatch
true if the value is not in the required syntax (when type is email or url), or false if the syntax is correct. If true, the element matches the {{cssxref(":invalid")}} CSS pseudo-class.patternMismatch
true if the value does not match the specified pattern, and false if it does match. If true, the element matches the {{cssxref(":invalid")}} CSS pseudo-class.tooLong
true if the value exceeds the specified maxlength for {{domxref("HTMLInputElement")}} or {{domxref("HTMLTextAreaElement")}} objects, or false if its length is less than or equal to the maximum length. If true, the element matches the {{cssxref(":invalid")}} and {{cssxref(":out-of-range")}} CSS pseudo-classes.tooShort
true if the value fails to meet the specified minlength for {{domxref("HTMLInputElement")}} or {{domxref("HTMLTextAreaElement")}} objects, or false if its length is greater than or equal to the minimum length. If true, the element matches the {{cssxref(":invalid")}} and {{cssxref(":out-of-range")}} CSS pseudo-classes.rangeUnderflow
true if the value is less than the minimum specified by the min attribute, or false if it is greater than or equal to the minimum. If true, the element matches the {{cssxref(":invalid")}} and {{cssxref(":out-of-range")}} CSS pseudo-classes.rangeOverflow
true if the value is greater than the maximum specified by the max attribute, or false if it is less than or equal to the maximum. If true, the element matches the {{cssxref(":invalid")}} and {{cssxref(":out-of-range")}} and CSS pseudo-classes.stepMismatch
true if the value does not fit the rules determined by the step attribute (that is, it's not evenly divisible by the step value), or false if it does fit the step rule. If true, the element matches the {{cssxref(":invalid")}} and {{cssxref(":out-of-range")}} CSS pseudo-classes.badInput
true if the user has provided input that the browser is unable to convert.customError
[!NOTE] To set all flags to
false, indicating that this element passes all constraints validation, pass in an empty object{}. In this case, you do not need to also pass amessage.
message {{Optional_Inline}}
flags are true. This parameter is only optional if all flags are false.anchor {{Optional_Inline}}
None ({{jsxref("undefined")}}).
NotSupportedError {{domxref("DOMException")}}
formAssociated property set to true.flags is true.NotFoundError {{domxref("DOMException")}}
anchor is given, but the anchor is not a shadow-including descendant of the element.In the following example setValidity is called with an empty flags parameter to indicate that the element meets constraint validation rules.
this.internals_.setValidity({});
In the following example setValidity is called with the flag valueMissing set to true. A message parameter must then also be passed containing a message.
this.internals_.setValidity({ valueMissing: true }, "my message");
{{Specifications}}
{{Compat}}