1.7 (案例)表单验证

2017-06-07  本文已影响0人  柒月柒日晴7

效果展示:

表单验证.png
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        .main{
            width: 500px;
            margin: 0 auto;
        }
        ul li{
            list-style: none;
            border:1px solid #000;
            color: red;
        }
    </style>
</head>
<body>
    <div class="main">
        <form method="post" action="http://www.baidu.com">
            <ul>
                <li>
                    用户名:
                    <input type="text" required placeholder="不能超过10位" maxlength="10">
                    <em></em>
                </li>
                <li>
                    密码:
                    <input type="password" required placeholder="长度不超过6位" maxlength="6">
                    <em></em>
                </li>
                <li>
                    邮箱:
                    <input type="email" required placeholder='请输入邮箱地址'>
                    <em></em>
                </li>
                <li>
                    手机:
                    <input type="tel" required placeholder='请输入手机号' pattern='(^0{0,1}\d{11}$)'>
                    <em></em>
                </li>
                <li>
                    身份证:
                    <input type="text" required  pattern='^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$'>
                    <em></em>
                </li>
                <li>
                    <input id="sub" type="submit" value="注册">
                </li>
            </ul>
        </form>
    </div>
</body>
<script>
    var form = document.getElementsByTagName("form")[0];
    var inps = document.getElementsByTagName("input");
    var ems = document.getElementsByTagName("em");
    var sub = document.getElementById("sub");
    function success(inputs){
        if(inputs.checkValidity()){
            return true;
        }else{
            return false;
        }
    }
    function checkWhy(inputs){
        var state = inputs.validity;
        var msg = "";
        switch(true){
            case state.valueMissing:
            msg='内容不能为空!';
            break;
            case state.patternMismatch:
            msg='内容格式错误1!';
            break;
            case state.typeMismatch:
            msg='内容格式错误!';
            break;
            case state.valid:
            msg='√';
            break;
        }
        return msg;
    }
    for(var i=0;i<inps.length-1;i++){
        inps[i].onblur = function(){
            for(var j=0;j<inps.length-1;j++){
                if(this==inps[j]){
                    ems[j].innerHTML = checkWhy(inps[j]);
                }
            }
        }
    }
    sub.onclick = function(){
        var isok = true;
        // console.log(inps[0].validity.valid)
        for(var i=0;i<inps.length-1;i++){
            if(success(inps[i])){
                isok=isok&&true;
            }else{
                isok=isok&&false;
            }
        }
        if(isok==true){
            alert("注册成功")
        }else{
            error();
            event.preventDefault();
        }
    }
    function error(){
        alert("注册失败");
        // ....
    }
</script>
</html>
上一篇 下一篇

猜你喜欢

热点阅读