ElementInternals:setValidity() 方法

Baseline 已廣泛支援

此功能已成熟,並可在許多裝置和瀏覽器版本上執行。自 2023 年 3 月以來,它已在各種瀏覽器中可用。

ElementInternals 介面的 setValidity() 方法用於設定元素的有效性。

語法

js
setValidity(flags)
setValidity(flags, message)
setValidity(flags, message, anchor)

引數

flags 可選

一個包含一個或多個指示元素有效性狀態的標誌的字典物件。

valueMissing

如果元素具有 required 屬性但沒有值,則布林值為 true,否則為 false。如果為 true,則元素將匹配 :invalid CSS 偽類。

typeMismatch

typeemailurl 時,如果值不符合必需的語法,則布林值為 true,如果語法正確,則為 false。如果為 true,則元素將匹配 :invalid CSS 偽類。

patternMismatch

如果值不匹配指定的 pattern,則布林值為 true,如果匹配,則為 false。如果為 true,則元素將匹配 :invalid CSS 偽類。

tooLong

對於 HTMLInputElementHTMLTextAreaElement 物件,如果值超出了指定的 maxlength,則布林值為 true,如果其長度小於或等於最大長度,則為 false。如果為 true,則元素將匹配 :invalid:out-of-range CSS 偽類。

tooShort

對於 HTMLInputElementHTMLTextAreaElement 物件,如果值未能滿足指定的 minlength,則布林值為 true,如果其長度大於或等於最小長度,則為 false。如果為 true,則元素將匹配 :invalid:out-of-range CSS 偽類。

rangeUnderflow

如果值小於 min 屬性指定的最小值,則布林值為 true,如果大於或等於最小值,則為 false。如果為 true,則元素將匹配 :invalid:out-of-range CSS 偽類。

rangeOverflow

如果值大於 max 屬性指定的上限,則布林值為 true,如果小於或等於上限,則為 false。如果為 true,則元素將匹配 :invalid:out-of-range CSS 偽類。

stepMismatch

如果值不符合 step 屬性確定的規則(即,不能被步長值整除),則布林值為 true,如果符合步長規則,則為 false。如果為 true,則元素將匹配 :invalid:out-of-range CSS 偽類。

badInput

如果使用者輸入的值瀏覽器無法轉換,則布林值為 true

customError

一個布林值,指示透過呼叫元素的 setCustomValidity() 方法,元素的自定義有效性訊息是否已被設定為非空字串。

注意: 要將所有標誌設定為 false,表示該元素通過了所有約束驗證,請傳入一個空物件 {}。在這種情況下,您也無需傳入 message

message 可選

一個包含訊息的字串,當任何 flagstrue 時會被設定。當所有 flags 都為 false 時,此引數才是可選的。

anchor 可選

一個 HTMLElement,使用者代理可以使用它來報告此表單提交的問題。

返回值

無(undefined)。

異常

NotSupportedError DOMException

如果元素沒有將其 formAssociated 屬性設定為 true,則丟擲此異常。

TypeError

如果一個或多個 flagstrue,則丟擲此異常。

NotFoundError DOMException

如果提供了 anchor,但該 anchor 不是元素的 shadow-inclusive descendant,則丟擲此異常。

示例

在以下示例中,呼叫 setValidity 時傳入了空的 flags 引數,表示元素符合約束驗證規則。

js
this.internals_.setValidity({});

在以下示例中,呼叫 setValidity 時將 valueMissing 標誌設定為 true。此時必須同時傳入一個包含訊息的 message 引數。

js
this.internals_.setValidity({ valueMissing: true }, "my message");

規範

規範
HTML
# dom-elementinternals-setvalidity

瀏覽器相容性