Good programmers web front-end verification JavaScript API tutorial Share

  Good programmers web front-end tutorial Share JavaScript validation API , small series will look dry day for everyone to share. Well, today said is the web front-end training courses chapters.

 

  JavaScript validation API

 

  Constraint validation DOM methods

 

PropertyDescription

 

checkValidity () if the data input elements are legitimate returns true, otherwise false.

 

setCustomValidity () Set input validationMessage property of an element, a method for a custom error message.

 

Use setCustomValidity set up a custom prompt, validity.customError will become true, the checkValidity always returns false. If you want to re-determine the need to cancel the custom prompts, as follows:

 

setCustomValidity('')

 

setCustomValidity(null)

 

setCustomValidity(undefined)

 

The following examples if the input information is invalid, an error message is returned:

 

checkValidity () method

 

<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" 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>

<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 属性

尝试一下 »

JavaScript 表单验证

JavaScript 保留关键字

1 篇笔记

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 = "输入正确";

 

}


Guess you like

Origin blog.51cto.com/14249543/2411157