JavaScript 验证 API

简介: JavaScript 验证 API

约束验证 DOM 方法

Property Description
checkValidity() 如果 input 元素中的数据是合法的返回 true,否则返回 false。
setCustomValidity()

设置 input 元素的 validationMessage 属性,用于自定义错误提示信息的方法。

使用 setCustomValidity 设置了自定义提示后,validity.customError 就会变成 true,checkValidity 总是会返回 false。如果要重新判断需要取消自定义提示,方式如下:

setCustomValidity('') 
setCustomValidity(null) 
setCustomValidity(undefined)

以下实例如果输入信息不合法,则返回错误信息:

checkValidity() 方法

<input id="id1" type="number" min="100" max="300" required><button onclick="myFunction()">验证</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 浏览器错误提示信息
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 onclick="myFunction()">验证</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 属性

<input id="id1" type="number" min="100" required><button onclick="myFunction()">OK</button> <p id="demo"></p> <script>

function myFunction() {    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;} // 判断输入是否为数字function isNumeric(n) {    return !isNaN(parseFloat(n)) && isFinite(n);}

</script>

2 篇笔记 写笔记


  1.   不爱李磊的韩梅梅
     227***1690@qq.com
    319
    setCustomValidity 的用法:

var inpObj = document.getElementById("id1");

inpObj.setCustomValidity(''); // 取消自定义提示的方式

if (inpObj.checkValidity() == false) {

   if(inpObj.value==""){

       inpObj.setCustomValidity("不能为空!");

   }else if(inpObj.value<100 || inpObj.value>300){

       inpObj.setCustomValidity("请重新输入数值(100~300之间)!");

   }

   document.getElementById("demo").innerHTML = inpObj.validationMessage;

} else {

   document.getElementById("demo").innerHTML = "输入正确";

}


可能是我理解能力比较差,没看懂 checkValidity()。
这个函数具体的意思是什么,后来查阅到了一个比较靠谱的答案。留下证据,以备像我一样笨的后人浪费时间。
HTMLSelectElement.checkValidity() 会检查元素是否有任何输入约束条件,并且检查值是否符合约束条件。 如果值是不符合约束条件的,浏览器就会在该元素上触发一个可以撤销的 invalid 事件。
初步理解为。该函数里面有两个值,默认判断值为 ture,可以修改为 flash。如有不对,希望指正。
以下是我测试的代码:

function myFunction() {

 var x = document.getElementById("nu");

 x.setCustomValidity("");//使用前先取消自定义,否则下次点击checkValidity总返false

 if (x.checkValidity() == false) {

   x.setCustomValidity("错误");

   document.getElementById("demo").innerHTML = x.validationMessage;

 }

 else {

   x.setCustomValidity("正确");

   document.getElementById("demo").innerHTML = x.validationMessage;

 }

}


目录
相关文章
|
18天前
|
移动开发 JavaScript 前端开发
JavaScript:验证输入
【9月更文挑战第02天】
31 6
|
16天前
|
缓存 JavaScript 前端开发
深入浅出:使用Node.js构建RESTful API
【9月更文挑战第3天】在数字化浪潮中,后端开发如同搭建一座连接用户与数据的桥梁。本文将带领读者从零开始,一步步用Node.js搭建一个功能完备的RESTful API。我们将探索如何设计API的结构、处理HTTP请求以及实现数据的CRUD操作,最终通过一个简单的实例,展示如何在真实世界中应用这些知识。无论你是初学者还是有一定经验的开发者,这篇文章都会为你揭示后端开发的奥秘,让你轻松入门并掌握这一技能。
39 3
|
20天前
|
JavaScript NoSQL API
深入浅出:使用Node.js构建RESTful API
【8月更文挑战第31天】本文将引导读者了解如何利用Node.js搭建一个高效、易于扩展的RESTful API。通过简单易懂的语言和逐步深入的内容组织,我们将一起探索Node.js在后端开发中的实际应用,包括环境配置、路由设计、数据处理与连接数据库等关键步骤。文章末尾,你将获得完整的项目代码示例,助你快速启动自己的API项目。
|
20天前
|
JavaScript 前端开发 API
深入浅出:使用Node.js搭建RESTful API的实践之旅
【8月更文挑战第31天】本文将带你踏上一次Node.js的探险之旅,通过实际动手构建一个RESTful API,我们将探索Node.js的强大功能和灵活性。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供宝贵的实践经验和深刻的技术洞见。
|
25天前
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
44 1
|
27天前
|
JavaScript 前端开发 中间件
深入浅出Node.js:从零开始构建RESTful API
【8月更文挑战第24天】在数字化时代的浪潮中,后端开发作为支撑现代网络服务的骨架,扮演着至关重要的角色。本文将通过Node.js这一高效灵活的JavaScript运行环境,引领你步入后端开发的神秘世界。我们将从基础概念出发,逐步深入到实战操作,最终构建一个功能完备的RESTful API。无论你是编程新手还是前端开发者,这篇文章都将为你揭示后端开发的奥秘,让你轻松掌握使用Node.js进行API开发的实用技巧。
|
17天前
|
JSON JavaScript 中间件
深入浅出Node.js: 从零开始构建RESTful API
【8月更文挑战第34天】 在数字时代的浪潮中,掌握如何构建高效、可靠的后端服务是每一位开发者的必备技能。本文将通过浅显易懂的语言和实际代码示例,带领初学者走进Node.js的世界,一步步搭建起自己的RESTful API。无论你是编程新手,还是想扩展技术栈的老手,这篇文章都将是你的良师益友。让我们一起探索Node.js的魅力,开启后端开发之旅!
|
19天前
|
JSON JavaScript 中间件
深入浅出Node.js: 从零开始构建RESTful API
【8月更文挑战第31天】 在数字时代的浪潮中,掌握如何构建高效、可靠的后端服务是每一位开发者的必备技能。本文将通过浅显易懂的语言和实际代码示例,带领初学者走进Node.js的世界,一步步搭建起自己的RESTful API。无论你是编程新手,还是想扩展技术栈的老手,这篇文章都将是你的良师益友。让我们一起探索Node.js的魅力,开启后端开发之旅!
|
19天前
|
前端开发 微服务 API
微服务浪潮下的JSF革新:如何在分散式架构中构建统一而强大的Web界面
【8月更文挑战第31天】随着微服务架构的兴起,企业将应用拆分成小型、独立的服务以提高系统可维护性和可扩展性。本文探讨如何在微服务架构下构建和部署JavaServer Faces (JSF) 应用,通过RESTful服务实现前后端分离,提升灵活性和适应性。
37 0
|
20天前
|
JavaScript 前端开发 API
深入浅出:使用Node.js打造简易Web API
【8月更文挑战第31天】本文旨在通过一个简单实例,引导读者快速入门Node.js并创建自己的Web API。我们将从零开始,一步步搭建起服务端应用,涉及环境搭建、基本语法、路由处理等关键知识点,最后以代码实例加深理解。无论你是前端开发者还是后端新手,这篇文章都能让你轻松上手,体验后端开发的乐趣。