JavaScript 验证 API

约束验证 DOM 方法

属性描述
checkValidity()如果输入元素包含有效数据,则返回 true
setCustomValidity()设置输入元素的 validationMessage 属性

如果输入字段包含无效数据,则显示消息:

checkValidity() 方法
  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h2>JavaScript 验证</h2>
  5. <p>输入一个数字,然后单击 OK:</p>
  6. <input id="id1" type="number" min="100" max="300" required="">
  7. <button onclick="myFunction()">OK</button>
  8. <p>如果数字小于 100 或大于 300,将显示错误消息。</p>
  9. <p id="demo">
  10. <script>
  11. function myFunction() {
  12. const inpObj = document.getElementById("id1");
  13. if (!inpObj.checkValidity()) {
  14. document.getElementById("demo").innerHTML = inpObj.validationMessage;
  15. } else {
  16. document.getElementById("demo").innerHTML = "Input OK";
  17. }
  18. }
  19. </script>
  20. </body>
  21. </html>

约束验证 DOM 属性

属性描述
validity包含与输入元素的有效性相关的布尔属性
validationMessage包含当有效性为 false 时浏览器将显示的消息
willValidate指示是否将验证输入元素。

有效性

输入元素的 validity 属性包含许多与数据有效性相关的属性:

属性描述
customError如果设置了自定义有效性消息,则设置为 true
patternMismatch如果元素的值与其模式属性不匹配,则设置为 true
rangeOverflow如果元素的值大于其 max 属性,则设置为 true
rangeUnderflow如果元素的值小于其 min 属性,则设置为 true
stepMismatch如果元素的每个 step 属性的值无效,则设置为 true
tooLong如果元素的值超过其 maxLength 属性,则设置为 true
typeMismatch如果元素的值对于其 type 属性无效,则设置为 true
valueMissing如果元素(具有必需属性)没有值,则设置为 true
valid如果元素的值有效,则设置为 true

实例

如果输入字段中的数字大于 100(输入的 max 属性),则显示一条消息:

rangeOverflow 属性
  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h2>JavaScript 验证</h2>
  5. <p>输入一个数字,然后单击 OK:</p>
  6. <input id="id1" type="number" max="100">
  7. <button onclick="myFunction()">OK</button>
  8. <p>如果数字大于 100(输入的 max 属性),将显示错误消息。</p>
  9. <p id="demo">
  10. <script>
  11. function myFunction() {
  12. let text;
  13. if (document.getElementById("id1").validity.rangeOverflow) {
  14. text = "Value too large";
  15. } else {
  16. text = "Input OK";
  17. }
  18. document.getElementById("demo").innerHTML = text;
  19. }
  20. </script>
  21. </body>
  22. </html>

如果输入字段中的数字小于 100(输入的 min 属性),则显示一条消息:

rangeUnderflow 属性
  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h2>JavaScript 验证</h2>
  5. <p>输入一个数字,然后单击 OK:</p>
  6. <input id="id1" type="number" min="100">
  7. <button onclick="myFunction()">OK</button>
  8. <p>如果数字小于100(输入的最小属性),将显示错误消息。</p>
  9. <p id="demo">
  10. <script>
  11. function myFunction() {
  12. let text;
  13. if (document.getElementById("id1").validity.rangeUnderflow) {
  14. text = "Value too small";
  15. } else {
  16. text = "Input OK";
  17. }
  18. document.getElementById("demo").innerHTML = text;
  19. }
  20. </script>
  21. </body>
  22. </html>

分类导航