网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 139|回复: 0
打印 上一主题 下一主题

JavaScript 验证 API

[复制链接]

433

主题

434

帖子

1767

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1767
跳转到指定楼层
楼主
发表于 2025-1-7 09:38:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
JavaScript 验证 API

约束验证 DOM 方法
  
Property
  
Description
checkValidity()
如果 input 元素中的数据是合法的返回 true,否则返回 false。
setCustomValidity()
设置 input 元素的 validationMessage 属性,用于自定义错误提示信息的方法。
  
使用 setCustomValidity 设置了自定义提示后,validity.customError 就会变成 true,checkValidity 总是会返回 false。如果要重新判断需要取消自定义提示,方式如下:
  setCustomValidity('') setCustomValidity(null) setCustomValidity(undefined)
以下实例如果输入信息不合法,则返回错误信息:
checkValidity() 方法
<inputid="id1" type="number" min="100"max="300" required>
<buttononclick="myFunction()">验证</button>
<pid="demo"></p>
<script>functionmyFunction() {
    var inpObj =document.getElementById("id1");
    if (inpObj.checkValidity() == false) {
       document.getElementById("demo").innerHTML =inpObj.validationMessage;
    }
}</script>

约束验证 DOM 属性
  
属性
  
描述
validity
布尔属性值,返回 input 输入值是否合法
validationMessage
浏览器错误提示信息
willValidate
指定 input 是否需要验证

Validity 属性
input 元素的 validity 属性包含一系列关于 validity 数据属性:
  
属性
  
描述
customError
设置为 true, 如果设置了自定义的 validity 信息。
patternMismatch
设置为 true, 如果元素的值不匹配它的模式属性。
rangeOverflow
设置为 true, 如果元素的值大于设置的最大值。
rangeUnderflow
设置为 true, 如果元素的值小于它的最小值。
stepMismatch
设置为 true, 如果元素的值不是按照规定的 step 属性设置。
tooLong
设置为 true, 如果元素的值超过了 maxLength 属性设置的长度。
typeMismatch
设置为 true, 如果元素的值不是预期相匹配的类型。
valueMissing
设置为 true,如果元素 (required 属性) 没有值。
valid
设置为 true,如果元素的值是合法的。

实例
如果输入的值大于 100,显示一个信息:
rangeOverflow 属性
<input id="id1" type="number"max="100">
<button>验证</button>
<p id="demo"></p>
<script>function myFunction() {
    var txt ="";
    if(document.getElementById("id1").validity.rangeOverflow) {
       txt = "输入的值太大了";
    }
   document.getElementById("demo").innerHTML = txt;
}</script>
如果输入的值小于 100,显示一个信息:
rangeUnderflow 属性
<inputid="id1" type="number" min="100" required>
<buttononclick="myFunction()">OK</button>
<pid="demo"></p>
<script>functionmyFunction() {
    var txt = "";
    var inpObj =document.getElementById("id1");
    if(!isNumeric(inpObj.value)) {
        txt = "你输入的不是数字";
    } else if (inpObj.validity.rangeUnderflow){
        txt = "输入的值太小了";
    } else {
        txt = "输入正确";
    }
   document.getElementById("demo").innerHTML = txt;
}
//判断输入是否为数字
functionisNumeric(n) {
    return !isNaN(parseFloat(n)) &&isFinite(n);
}</script>

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2025-2-24 02:12 , Processed in 0.035319 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表