JS实现常规登录验证

表单对象:(属于DOM对象的子对象)

  • 找到对象:
    document.getElementById()
    document.forms.username
    document.frm1.username
  • 属性:(本身表单有的属性,都可以是对象的属性)
    action:表单数据的处理程序
    method:表单的提交方式GET、POST
    enctype:表单数据的编码方式(加密)
  • 方法
    submit():提交表单
    focus():获取焦点
  • 事件:
    onfocus():当获得焦点时执行的事件
    onblur():当失去焦点时执行的事件
    onchange():内容改变触发

验证:前后台都需要验证

form上有个onsubmit():提交事件,当单击提交按钮时发生的事件。在数据传到服务器之前

HTML代码:

<head>
    <style type="text/css">
        .stats1{
            color: #aaa;
        }
        .stats2{
            color: #000;
        }
        .stats3{
            color: red;
        }
        .stats4{
            color:green;
        }
    </style>
</head>
<body>
<form action="" method="post" onsubmit="return rpg('click')">
    username:<input type="text" name="username" value="" >
    <span class="stats1">请输入用户名</span>
    <br>
    password:<input type="password" name="password" value="" />
    <span class="stats1">请输入密码</span><br>
    repass:<input type="password" name="repass" value="" />
    <span class="stats1">请确认密码</span><br>
    email:<input type="text" name="email" value="" />
    <span class="stats1">请输入邮箱</span><br>
    other:<input type="text" name="other" value="" />
    <span class="stats1">请输入其他</span><br>
    submit:<input type="submit" name="sub" value="submit" />
</form>
<script src="yanzheng.js"></script>
</body>
</html>

JS代码:

function getSpan(obj) {   //获取下一个span
    while(true) {
        if (obj.nextSibling.nodeName != "SPAN") {
            obj = obj.nextSibling;
        } else {
            return obj.nextSibling
        }
    }
}
function check(obj,info,fun,click){   //检查方法
    obj.onfocus=function () {
        var sp=getSpan(obj);
        sp.innerHTML=info;
        sp.className="stats2";
    }
    obj.onblur=function () {
        var sp=getSpan(obj);
        if (fun(this.value)) {
            sp.innerHTML="输入正确";
            sp.className="stats4";
        }else{
            sp.innerHTML=info;
            sp.className="stats3";
        }
    }
    if (click=="click") {
        obj.onblur();
    }
}
onload=rpg;//页面加载完自动调用

function rpg(click) {
    var stat=true;
    var username=document.getElementsByName("username")[0];
    var password=document.getElementsByName("password")[0];
    var repass=document.getElementsByName("repass")[0];
    var email=document.getElementsByName("email")[0];
    var other=document.getElementsByName("other")[0];
    check(username,"用户名的长度在3~20之间",function (val) {
        if(val.match(/^\S+$/)&&val.length>=3&&val.length<=20)
            return true;
        else
            stat=false;
            return false;
    },click);
    check(password,"密码长度为6~20",function (val) {
        if(val.match(/^\S+$/)&&val.length>=6&&val.length<=20)
            return true;
        else
            stat=false;
            return false;
    },click);
    check(repass,"确认密码一致",function (val) {
        if(val.match(/^\S+$/)&&val.length>=6&&val.length<=20&&val==password.value)
            return true;
        else
            stat=false;
            return false;
    },click);
    check(email,"遵循邮箱规则写法",function (val) {
        if(val.match(/\w+@\w+\.\w/))
            return true;
        else
            stat=false;
            return false;
    },click);
    check(password,"密码长度为6~20",function (val) {
        if(val.match(/^\S+$/)&&val.length>=6&&val.length<=20)
            return true;
        else
            stat=false;
            return false;
    }.click);
    return stat;
}

运行结果:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值