js的表单验证器

1. html代码

定义了文本框输入用户名,两个密码进行输入和确认,最后是邮箱输入,每个输入框后面紧跟一个span,进行输出提示信息。
在这里插入图片描述

 <style>
        input+span{
            color: red;
        }
    </style>
</head>
<body>
    <form action="" name="form1" method="post" onsubmit="return checkSubmit()">
        <p>
            用户名<input type="text" name="uname" id="uname"
            onfocus="hint('uname_hint','长度不能小于6位')" 
            onblur="cannel_hint('uname_hint')"
            onkeyup="checkName()"
            >
            <span id="uname_hint"></span>
        </p>
        <p>
            密码 <input type="password" name="upass" id="upass"
            onfocus="hint('upass_hint','长度不能小于6位')" 
            onblur="cannel_hint('upass_hint')"
            onkeyup="checkPass()"
            >
            <span id="upass_hint"></span>
        </p>
        <p>
            确认密码<input type="password" name="upass2" id="upass2"
            onfocus="hint('upass2_hint','两次密码要一致')" 
            onblur="cannel_hint('upass2_hint')"
            onkeyup="confirmPass()"
            >
            <span id="upass2_hint"></span>
        </p>
        <p>
            邮箱<input type="text" name="email" id="email"
            onfocus="hint('email_hint','输入为邮箱格式')" 
            onblur="cannel_hint('email_hint')"
            onkeyup="checkEmail()"
            >
            <span id="email_hint"></span>
        </p>
        <p>
            <input type="submit">
            
        </p>
    </form>
    </body>

2.js核心验证

hint()和cannel_hint()为鼠标focusblus事件的输入提示信息,ele为当前input传入它后面的span的id。然后每个input增加keyUp事件,执行对应的check方法.最后checkSumbit方法来判断当前表单是否能提交。
在这里插入图片描述

 <script>
       
        //聚焦时提示输入
        function hint(ele,msg){
            let span=document.getElementById(ele);
            span.innerHTML=msg;
        }
        //取消聚焦取消提示
        function cannel_hint(ele){
            let span=document.getElementById(ele);
            span.innerHTML='';
        }
        //验证用户名
        function checkName(){
            let nameValue=document.getElementById("uname").value;
            let span=document.getElementById("uname_hint");
            if(nameValue.length<6){
                span.innerHTML="长度小于6";
                return false;
            }else{
                span.innerHTML="";
                return true;
            }
        }
        //验证密码
        function checkPass(){
            let passValue=document.getElementById("upass").value;
            let span=document.getElementById("upass_hint");
            if(passValue.length<6){
                span.innerHTML="长度小于6";
                return false;
            }else{
                span.innerHTML="";
                return true;
            }
        }
        //确认密码无误
        function confirmPass(){
            //获取输入的密码
            let passValue=document.getElementById("upass").value;
            let passValue2=document.getElementById("upass2").value;
            let span=document.getElementById("upass2_hint");
            if(passValue!=passValue2){
                span.innerHTML="密码不一致"
                return false;
            }else{
                span.innerHTML=""
                return true;
            }

        }
        //检查邮箱
        function checkEmail(){
            let reg=/[\w]+@[\w]+\.[\w]+$/;
            let eValue=document.getElementById("email").value;
            let span=document.getElementById("email_hint");
            if(!reg.test(eValue)){
                span.innerHTML="邮箱格式错误";
                return false;
            }else{
                span.innerHTML=""
                return true;
            }

        }
        //使用&保证每个方法执行到,而提交时输入对应的错误信息
        function checkSubmit(){
            if (checkName() & checkPass() & confirmPass() & checkEmail()){
                return true;
            }else{
                return false;
            }
        }


    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值