ElementInternals: reportValidity() 方法

Baseline 已广泛支持

此功能已成熟,并可在许多设备和浏览器版本上运行。自 2023 年 3 月以来,它已在各种浏览器中可用。

reportValidity() 方法是 ElementInternals 接口的一部分,用于检查元素是否满足应用于它的任何 约束验证规则。

如果 reportValidity 返回 false,则会在元素上触发一个可取消的 invalid 事件

此方法与 ElementInternals.checkValidity() 的行为类似,但此外它还会将 ElementInternals.validationMessage 的值发送给用户代理进行显示。

语法

js
reportValidity()

参数

无。

返回值

一个布尔值,如果元素满足所有验证约束,则为 true

异常

NotSupportedError DOMException

如果元素没有将其 formAssociated 属性设置为 true,则抛出此异常。

示例

在下面的示例中,ElementInternals.setValidity() 用于指示元素不满足验证规则。调用 reportValidity() 返回 false,并将值“my message”发送给用户代理进行显示。

再次调用 setValidity,这次指示所有规则均标记为 false 后,reportValidity() 返回 true

js
let element = document.getElementById("join-checkbox");
element.internals_.setValidity({ valueMissing: true }, "my message");
console.log(element.internals_.reportValidity()); // false
element.internals_.setValidity({});
console.log(element.internals_.reportValidity()); // true

规范

规范
HTML
# dom-elementinternals-reportvalidity

浏览器兼容性