validity.rangeoverflow 为 true 当且仅当 input 类型支持 max(如 number、range、date)、设置了有效 max 值,且用户输入的有效数字严格大于该 max 值;空值或非法输入时返回 false。

validity.rangeOverflow 是 HTML5 表单验证 API 中的一个布尔属性,用于判断用户输入的数字是否**超过了 input 元素设置的 max 属性值
什么时候 validity.rangeOverflow 为 true
当且仅当满足以下所有条件时,input.validity.rangeOverflow 返回 true:
- 该
input的type是"number"、"range"或其他支持max的类型(如"date") - 元素设置了有效的
max属性(例如max="100") - 用户输入了一个**有效数字**(即能被解析为数字,不是空、"abc" 或 ""),且该数字**严格大于**
max值
实际用法示例
HTML 结构:
JS 检测逻辑:
console.log(input.validity.rangeOverflow); // true(因为 130 > 120)
注意:如果输入是空字符串、"abc" 或未填,rangeOverflow 仍为 false——此时触发的是 valueMissing 或 badInput,而非范围溢出。
配合 checkValidity() 和自定义反馈
它常和表单验证流程结合使用:
input.addEventListener('input', () => {if (input.validity.rangeOverflow) {
input.setCustomValidity('不能超过最大值 ' + input.max);
} else {
input.setCustomValidity('');
}
});
这样在调用 form.checkValidity() 或提交时,浏览器会显示你设定的提示,并阻止提交。
和其他 validity 属性的区别
rangeOverflow 只管“太大”,不处理“太小”或“非数字”:
- 小于
min→ 对应validity.rangeUnderflow - 输入非法(如字母)→ 对应
validity.badInput - 为空且
required→ 对应validity.valueMissing
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











