吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 908|回复: 1
收起左侧

[讨论] javaScript 表单验证 初学记录

[复制链接]
lihu5841314 发表于 2021-7-10 17:03
[Asm] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单验证</title>
</head>
<body>
<script type="text/javascript">
window.onload=function (){
    var usename =document.getElementById("usename")
    var password =document.getElementById("password")
    var password2 =document.getElementById("password2")
    var email =document.getElementById("email")
    var btm = document.getElementById("btm")
    var table_re = /\w{4,14}/
    var  email_re =/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
    usename.onblur = function () {
        var ok = table_re.test(usename.value)
        if(!ok){
           document.getElementById("sp").innerText='1.用户名不能为空,由4-14位的数字和字母构成'
           usename.value=''
        }
    }
    usename.onfocus=function(){
        document.getElementById("sp").innerText=''
    }
    password.onblur = function () {
        var ok = table_re.test(password.value)
        if(!ok){
           document.getElementById("sp1").innerText='1.密码不能为空,由4-14位的数字和字母构成'
             password.value=''
        }
    }
    password.onfocus=function() {
        document.getElementById("sp1").innerText = ''
    }
    password2.onblur = function () {
        var ok2 = table_re.test(password2.value)
        if(ok2){
            //document.getElementById("sp2").innerText='输入格式合法'
            if(password2.value !== password.value){
                document.getElementById("sp2").innerText='请密码和验证密码保持一致'}}
        else
        {
            document.getElementById("sp2").innerText='格式错误由4-14位的数字和字母构成'
            password2.value=''}
    password2.onfocus=function() {
        document.getElementById("sp2").innerText = ''
    }}
    email.onblur = function () {
    var ok2 = email_re.test(email.value)
    if(ok2){
        //document.getElementById("sp3").innerText='输入格式合法'
        }
    else{
    document.getElementById("sp3").innerText='格式错误'
    email.value=''}
    email.onfocus=function() {
    document.getElementById("sp3").innerText = ''
    }
    }
    btm.onclick =function () {
        var sp = document.getElementById("sp").textContent
        var sp1 = document.getElementById("sp2").textContent
        var sp2 = document.getElementById("sp2").textContent
        var sp3 = document.getElementById("sp3").textContent
        var ok = sp + sp1 + sp2 + sp3
        if (ok.length===0) {
            document.getElementById("sp4").innerText = '注册成功'
        }
        else {
            document.getElementById("sp4").innerText = '注册失败,请检查'
        }

    }
}
</script>
<input type="text" id="usename" >
<span type="text" id="sp" style="color:red" ></span>
<br>
<input type="text" id="password" >
<span type="text" id="sp1" style="color:red"></span>
<br>
<input type="text" id="password2" >
<span type="text" id="sp2" style="color:red"></span>
<br>
<input type="text" id="email" >
<span type="text" id="sp3" style="color:red"></span>
<br>
<button type="button" id="btm"  >验证提交</button>
<span type="text" id="sp4" style="color:red"></span>
</body>
</html>
<!--/*-->
<!--1.用户名不能为空,由4-14位的数字和字母构成-->
<!--2.密码和验证密码一致,邮箱地址合法-->
<!--3. 统一失去焦点验证,错误提示在span标签中显示,字体12号,红色-->
<!--4.获得焦点清空,错误提示信息,如果文本框中的信息不合法要求清空文本框的value-->
<!--5.最终表单中所有项目都合法方可提交-->
<!--*/-->

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| lihu5841314 发表于 2021-7-10 21:22
[Asm] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单验证2</title>
    <style type="text/css">
        span{
            color: brown;
            font-size: 12px;
        }
    </style>
</head>
<body>
     <script type="text/javascript" >
         /*
    1.用户名不能为空,由4-14位的数字和字母构成-->
    2.密码和验证密码一致,邮箱地址合法-->
    3. 统一失去焦点验证,错误提示在span标签中显示,字体12号,红色-->
    4.获得焦点清空,错误提示信息,如果文本框中的信息不合法要求清空文本框的value-->
    5.最终表单中所有项目都合法方可提交-->
          */
         window.onload=function (){
             // 获取usename的span标签
            var usename_error_span = document.getElementById("usename_error")
            //给用户名文本框绑定blur事件  写代码最后写出一个功能F12调出控制台测试一个功能
            var usrnameElt= document.getElementById("usename")
                usrnameElt.onblur=function (){
                //失去焦点的判断  获取用户名  用trim去除前后空白
                var usename = usrnameElt.value
                    usename =  usename.trim()
                /*
                //判断用户名是否为空
                if(usename){
                //代表usename不是空字符串
                }else{
                //代表usename是空字符串
                }
                 */
                // if(usename.length==0){}else{}  第二种方式判断用户名是否为空
                // 第三种方式判断用户名是否为空


                if(usename===""){
                   //代表usename不是空字符串
                    usename_error_span.innerHTML="用户名不能为空"
                    }
                else{
                    //代表usename是空字符串  ||表示或
                    if(usename.length<6||usename.length>14){
                        usename_error_span.innerHTML='用户名长度必须在6到14位之间'
                    }else{
                        //用户名长度合法
                        //判断是否含有特殊符号  正则
                        var regEXP = /^[a-z0-9]+$/i
                        if(regEXP.test(usename)){
                            // 用户名最终合法
                        }else{
                            //用户名含有特殊符号
                            usename_error_span.innerHTML='用户名只能由字母和数字组成'
                        }
                    }
                }
                }
                //给username文本框绑定获得焦点事件
                usrnameElt.onfocus=function (){
                              //清空非法的value
                if(usename_error_span.innerHTML !==""){
                    usrnameElt.value = ""
                }
                //清空span
                usename_error_span.innerHTML=""

                }
             //获取确认密码框对象
             var userpwd2Elt=document.getElementById("userpwd2")
             var userpwdElt=document.getElementById("userpwd")
             var userpwd2_errorSpan = document.getElementById('userpwd2_error')
             //绑定blur事件
             userpwd2Elt.onblur=function (){
                 //获取密码和确认密码
                 if(userpwd2Elt.value !==userpwdElt.value){
                 //    密码不一致
                 userpwd2_errorSpan.innerHTML="密码不相同"
                 }else{
                     //    密码一致
                 }
             }
             //绑定fous事件
             userpwd2Elt.onfocus=function(){
                 if(userpwd2_errorSpan.innerHTML!==""){
                     userpwd2Elt.value=""
                 userpwd2_errorSpan.innerHTML=""
                 }
             }
             //获取email对象
             var emailElt = document.getElementById('email')
             var  email_errorElt = document.getElementById('email_error')
             //绑定blur事件
             emailElt.onblur=function (){
             //   判断邮箱格式正则表达式
             var reExp2 =/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
             var  ok = reExp2.test(emailElt.value)
                 if(ok){
                 //邮箱格式正确
                 }else{
                 //邮箱格式不正确
                 email_errorElt.innerHTML='邮箱格式不正确 '
                 }
             }
             //绑定fous事件
             emailElt.onfocus =function (){
                if(email_errorElt.innerHTML!==""){
                    emailElt.value=""
                email_errorElt.innerHTML=''
                }
             }

         //给提交按钮绑定鼠标单击事件
         var submitBtnElt=document.getElementById('submitBtn')
         submitBtnElt.onclick=function (){
              //触发usename的blur userpwd2的blur  email的blur
              // 不需要人工操作,使用纯js代码触发事件
              usrnameElt.focus()
              usrnameElt.blur()

              userpwd2Elt.focus()
              userpwd2Elt.blur()

              emailElt.focus()
              emailElt.blur()

             // 当所有表单项目都合法的时候提交表单
             if(usename_error_span.innerHTML==="" && userpwd2_errorSpan.innerHTML==="" && email_errorElt.innerHTML===""){
             //获取表单对象
             var useFormElt = document.getElementById("userForm");
             //可以在这里设置action也可以不在这里 标签有什么属性就可以点什么属性
             useFormElt.action="http://localhost:8080/jd/save";
             //提交表单
             useFormElt.submit();
         }}}
     </script>
    <!--这个表单应该使用post请求,这里为了检测用get-->
    <form id="userForm"   method="get">
        <!--div标签节点独自占一行-->
        用户名<input type="text" name="usename" id="usename"/><span  id="usename_error"></span><br>
        密码<input type="text" name="userpwd" id="userpwd"/><br>
        确认密码<input type="text"  id="userpwd2"/><span  id="userpwd2_error"></span><br>
        邮箱<input type="text" name="email" id="email"/><span  id="email_error"></span><br>
        <input type="button" id='submitBtn' value="提交"/>
        <input type="reset" value="重置"/>
    </form>
</body>
</html>
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 00:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表