JavaScript 验证 API
约束验证 DOM 方法
属性 | 描述 |
---|---|
checkValidity() | 返回 true,如果 input 元素包含有效数据 |
setCustomValidity() | 设置 input 元素的 validationMessage 属性。 |
checkValidity() 方法
如果输入字段包含无效的数据,显示一条消息:
- <input id="id1" type="number" min="100" max="300" required>
- <button onclick="myFunction()">OK</button>
- <p id="demo"></p>
- <script>
- function myFunction() {
- var inpObj = document.getElementById("id1");
- if (inpObj.checkValidity() == false) {
- document.getElementById("demo").innerHTML = inpObj.validationMessage;
- }
- }
- </script>
约束验证 DOM 属性
属性 | 描述 |
---|---|
validity | 包含与 input 元素的合法性相关的布尔属性。 |
validationMessage | 包含当 validity 为 false 时浏览器显示的消息。 |
willValidate | 指示是否验证 input 元素。 |
合法性属性
input 元素的 validity 属性包含了与数据合法性相关的一系列属性:
属性 | 描述 |
---|---|
customError | 设置为 true,如果设置自定义的合法性消息。 |
patternMismatch | 设置为 true,如果元素值不匹配其 pattern 属性。 |
rangeOverflow | 设置为 true,如果元素值大约其 max 属性。 |
rangeUnderflow | 设置为 true,如果元素值小于其 min 属性。 |
stepMismatch | 当字段拥有 step 属性,且输入的 value 值不符合设定的间隔值时,该属性值为 true。 |
tooLong | 设置为 true,如果元素值超过了其 maxLength 属性。 |
typeMismatch | 当字段的 type 是 email 或者 url 但输入的值不是正确的类型时,属性值为 true。 |
valueMissing | 设置为 true,如果元素(包含 required)没有值。 |
valid | 设置为 true,如果元素值是有效的。 |
实例
如果输入字段中的数字大于 100(input 元素的 max 属性),则显示一条消息:
rangeOverflow 属性
- <input id="id1" type="number" max="100">
- <button onclick="myFunction()">OK</button>
- <p id="demo"></p>
- <script>
- function myFunction() {
- var txt = "";
- if (document.getElementById("id1").validity.rangeOverflow) {
- txt = "值太大";
- }
- document.getElementById("demo").innerHTML = txt;
- }
- </script>
如果输入字段中的数字小于 100(input 元素的 min 属性),则显示一条消息:
rangeUnderflow 属性
- <input id="id1" type="number" min="100">
- <button onclick="myFunction()">OK</button>
- <p id="demo"></p>
- <script>
- function myFunction() {
- var txt = "";
- if (document.getElementById("id1").validity.rangeUnderflow) {
- txt = "值太小";
- }
- document.getElementById("demo").innerHTML = txt;
- }
- </script>