A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 不二晨 于 2019-4-8 17:22 编辑

约束验证 DOM 方法

Property        Description
checkValidity()        如果 input 元素中的数据是合法的返回 true,否则返回 false。
setCustomValidity()        
设置 input 元素的 validationMessage 属性,用于自定义错误提示信息的方法。
使用 setCustomValidity 设置了自定义提示后,validity.customError 就会变成true,则 checkValidity 总是会返回false。如果要重新判断需要取消自定义提示,方式如下:
setCustomValidity('')
setCustomValidity(null)
setCustomValidity(undefined)
<!DOCTYPE html>
<html>
<head>
        <meta charset="utf-8">
</head>
        
<body>
        <p>输入数字并点击验证按钮:</p>
        <input id="id1" type="number" min="100" max="300" required>
        <button>验证</button>
        <p>如果输入的数字小于 100 或大于300,会提示错误信息。</p>
        <p id="demo"></p>
        <script>
                function myFunction() {
                        var inpObj = document.getElementById("id1");
                        if (inpObj.checkValidity() == false) {
                                document.getElementById("demo").innerHTML = inpObj.validationMessage;
                        } else {
                                document.getElementById("demo").innerHTML = "输入正确";
                        }
                }
        </script>
</body>
</html>
约束验证 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,如果元素的值是合法的。
<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>
<input id="id1" type="number" min="100" required>
<button>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>
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 = "输入正确";
}
HTMLSelectElement.checkValidity() 会检查元素是否有任何输入约束条件,并且检查值是否符合约束条件。 如果值是不符合约束条件的,浏览器就会在该元素上触发一个可以撤销的 invalid 事件。

JavaScript 保留关键字

Javascript 的保留关键字不可以用作变量、标签或者函数名。有些保留关键字是作为 Javascript 以后扩展使用。

abstract        arguments        boolean        break        byte
case        catch        char        class*        const
continue        debugger        default        delete        do
double        else        enum*        eval        export*
extends*        false        final        finally        float
for        function        goto        if        implements
import*        in        instanceof        int        interface
let        long        native        new        null
package        private        protected        public        return
short        static        super*        switch        synchronized
this        throw        throws        transient        true
try        typeof        var        void        volatile
while        with        yield                  
* 标记的关键字是 ECMAScript5 中新添加的。

JavaScript 对象、属性和方法

您也应该避免使用 JavaScript 内置的对象、属性和方法的名称作为 Javascript 的变量或函数名:

Array        Date        eval        function        hasOwnProperty
Infinity        isFinite        isNaN        isPrototypeOf        length
Math        NaN        name        Number        Object
prototype        String        toString        undefined        valueOf
Java 保留关键字

JavaScript 经常与 Java 一起使用。您应该避免使用一些 Java 对象和属性作为 JavaScript 标识符:

getClass        java        JavaArray        javaClass        JavaObject        JavaPackage
Windows 保留关键字

JavaScript 可以在 HTML 外部使用。它可在许多其他应用程序中作为编程语言使用。

在 HTML 中,您必须(为了可移植性,您也应该这么做)避免使用 HTML 和 Windows 对象和属性的名称作为 Javascript 的变量及函数名:

alert        all        anchor        anchors        area
assign        blur        button        checkbox        clearInterval
clearTimeout        clientInformation        close        closed        confirm
constructor        crypto        decodeURI        decodeURIComponent        defaultStatus
document        element        elements        embed        embeds
encodeURI        encodeURIComponent        escape        event        fileUpload
focus        form        forms        frame        innerHeight
innerWidth        layer        layers        link        location
mimeTypes        navigate        navigator        frames        frameRate
hidden        history        image        images        offscreenBuffering
open        opener        option        outerHeight        outerWidth
packages        pageXOffset        pageYOffset        parent        parseFloat
parseInt        password        pkcs11        plugin        prompt
propertyIsEnum        radio        reset        screenX        screenY
scroll        secure        select        self        setInterval
setTimeout        status        submit        taint        text
textarea        top        unescape        untaint        window
HTML 事件句柄

除此之外,您还应该避免使用 HTML 事件句柄的名称作为 Javascript 的变量及函数名。

实例:

onblur        onclick        onerror        onfocus
onkeydown        onkeypress        onkeyup        onmouseover
onload        onmouseup        onmousedown        onsubmit
非标准 JavaScript

除了保留关键字,在 JavaScript 实现中也有一些非标准的关键字。

一个实例是 const 关键字,用于定义变量。 一些 JavaScript 引擎把 const 当作 var 的同义词。另一些引擎则把 const 当作只读变量的定义。

Const 是 JavaScript 的扩展。JavaScript 引擎支持它用在 Firefox 和 Chrome 中。但是它并不是 JavaScript 标准 ES3 或 ES5 的组成部分。建议:不要使用它。
---------------------
【转,仅作分享,侵删】
作者:hhjian6666
原文:https://blog.csdn.net/qq_30796379/article/details/89041090
版权声明:本文为博主原创文章,转载请附上博文链接!

3 个回复

倒序浏览
回复 使用道具 举报
奈斯,感谢分享!
回复 使用道具 举报
我来看看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马