ElementInternals:setValidity() 方法
setValidity()
方法是 ElementInternals
接口的方法,用于设置元素的有效性。
语法
setValidity(flags)
setValidity(flags, message)
setValidity(flags, message, anchor)
参数
flags
可选-
一个字典对象,包含一个或多个标志,指示元素的有效性状态
valueMissing
-
一个布尔值,如果元素具有
required
属性但没有值,则为true
,否则为false
。如果为true
,则元素与:invalid
CSS 伪类匹配。 typeMismatch
-
一个布尔值,如果值不符合所需的语法(当
type
为email
或url
时),则为true
,如果语法正确,则为false
。如果为true
,则元素与:invalid
CSS 伪类匹配。 patternMismatch
-
一个布尔值,如果值与指定的
pattern
不匹配,则为true
,如果匹配,则为false
。如果为true
,则元素与:invalid
CSS 伪类匹配。 tooLong
-
一个布尔值,如果值超过了
HTMLInputElement
或HTMLTextAreaElement
对象指定的maxlength
,则为true
,如果其长度小于或等于最大长度,则为false
。如果为true
,则元素与:invalid
和:out-of-range
CSS 伪类匹配。 tooShort
-
一个布尔值,如果值未满足
HTMLInputElement
或HTMLTextAreaElement
对象指定的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
可选-
一个包含消息的字符串,如果任何
flags
为true
,则将设置此字符串。仅当所有flags
均为false
时,此参数才是可选的。 anchor
可选-
一个
HTMLElement
,用户代理可以使用它来报告此表单提交的问题。
返回值
无 (undefined
).
异常
NotSupportedError
DOMException
-
如果元素的
formAssociated
属性未设置为true
,则抛出此异常。 TypeError
-
如果一个或多个
flags
为true
,则抛出此异常。 NotFoundError
DOMException
-
如果提供了
anchor
,但该锚点不是元素的包含阴影的后代,则抛出此异常。
示例
在以下示例中,setValidity
被调用,其 flags
参数为空,表示元素满足约束验证规则。
this.internals_.setValidity({});
在以下示例中,setValidity
被调用,其 valueMissing
标志被设置为 true
。然后还必须传递一个 message
参数,其中包含一条消息。
this.internals_.setValidity({ valueMissing: true }, "my message");
规范
规范 |
---|
HTML 标准 # dom-elementinternals-setvalidity |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。