HTMLInputElement: checkValidity() 方法
checkValidity()
方法是 HTMLInputElement
接口的方法,它返回一个布尔值,该值指示元素是否满足应用于它的任何 约束验证 规则。如果为 false,则该方法还会在元素上触发一个 invalid
事件。由于 checkValidity()
没有默认的浏览器行为,因此取消此 invalid
事件无效。
注意:如果 HTML <input>
元素的 validationMessage
不为空,则该元素被认为无效,将匹配 CSS :invalid
伪类,并且将导致 checkValidity()
返回 false。使用 HTMLInputElement.setCustomValidity()
方法将 HTMLInputElement.validationMessage
设置为空字符串,以将 validity
状态设置为有效。
语法
js
checkValidity()
参数
无。
返回值
如果元素的值没有有效性问题,则返回 true
;否则,返回 false
。
示例
HTML
我们包含一个包含必填数字字段和两个按钮的表单:一个用于检查表单,另一个用于提交表单。
html
<form action="#" method="post">
<p>
<label for="age">Your (21 to 65) </label>
<input type="number" name="age" required id="age" min="21" max="65" />
</p>
<p>
<button type="submit">Submit</button>
<button type="button" id="check">checkValidity()</button>
</p>
<p id="log"></p>
</form>
JavaScript
js
const output = document.querySelector("#log");
const checkButton = document.querySelector("#check");
const ageInput = document.querySelector("#age");
ageInput.addEventListener("invalid", () => {
console.log("Invalid event fired.");
});
checkButton.addEventListener("click", () => {
const checkVal = ageInput.checkValidity();
output.innerHTML = `checkValidity returned: ${checkVal}`;
});
结果
当为 false
时,如果值缺失、低于 21、高于 65 或其他无效情况,则无效事件将记录到控制台。若要向用户报告错误,请改用 HTMLInputElement.reportValidity()
。
规范
规范 |
---|
HTML 标准 # dom-cva-checkvalidity-dev |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。