注册登录模板

6 篇文章 0 订阅

写个通用的注册登录页面

github地址git@github.com:xiaoli0510/loginRegister.git

需求:1.实现登录和注册的切换;

           2.phone/code/pwd的校验;

           3.ajax的请求以及登录注册后的回调;

最终效果图如下:

文件结构如下:

index.html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>account</title>
    <link rel="stylesheet" href="./css/common.css">
    <link rel="stylesheet" href="./css/index.css">
</head>
<body>
    <form class="form-login" id="formLogin">
        <h2>登录</h2>
        <div class="item">
           <img src="./img/user.png">
            <input type="text" placeholder="请输入手机号码" id="phone">
        </div>
        <div class="item">
                <img src="./img/pwd.png">
                <input type="password" placeholder="请输入6-16位数密码" minlength="6" maxlength="16" id="pwd">
        </div>
       <div class="btn-area clearfix">
            <button type="button" class="switch fr" id="switchReg">立即注册</button>
       </div>
        <button type="button" class="login" id="login">登录</button>
    </form>
    <form class="form-register  hide" id="formReg">
            <h2>注册</h2>
            <div class="item">
                    <img src="./img/user.png">
                    <input type="text" placeholder="请输入手机号码" id="phoneReg">
                    <button class="code-btn" id="codeBtn">获取验证码</button>
            </div>
            <div class="item">
                    <img src="./img/code.png">
                    <input type="text" placeholder="请输入6位数验证码" maxlength="6" id="codeReg">
            </div>
            <div class="item">
                    <img src="./img/pwd.png">
                    <input type="password" placeholder="请输入6-16位数密码" minlength="6" maxlength="16" id="pwdReg">
            </div>
           <div class="btn-area clearfix">
                <button type="button" class="switch fr" id="switchLogin">已有账号,立即登录</button>
           </div>
            <button type="button" class="register" id="register">注册</button>
        </form>
    <script type="text/javascript" src="./js/rem.js"></script>
    <script type="text/javascript" src="./js/jquery-2.1.4.min.js"></script>
    <script type="text/javascript" src="./js/index.js"></script>
</body>
</html>

index.js代码

//切换到注册
$('#switchReg').click(function () {
    $('#formReg').removeClass('hide');
    $('#formLogin').addClass('hide');
})

//切换到注册
$('#switchLogin').click(function () {
    $('#formReg').addClass('hide');
    $('#formLogin').removeClass('hide');
})

//点击获取验证码
$('#codeBtn').click(function () {
    clickCodeBtn({
        phoneId: "phoneReg",
        codeBtnId: "codeBtn"
    }, countDown)
})

//注册
$("#register").click(function () {
    goRegister({
        phoneId: "phoneReg",
        codeId: "codeReg",
        pwdId: "pwdReg",
        submitBtnId: "register"
    })
});

//登录
$("#login").click(function () {
    goLogin({
        phoneId: "phone",
        pwdId: "pwd",
        submitBtnId: "login"
    });
})

//封装登录函数  参数是{phoneId:'',pwdId:'',submitBtnId:''} sucCallback=>登录成功回调 failCallback=>登录失败回调
function goLogin(obj, sucCallback, failCallback) {
    if (!obj.phoneId || !obj.pwdId||!obj.submitBtnId) {
        alert('数据有误');
        return false;
    }
    var phone = $.trim($("#" + obj.phoneId).val()),
        pwd = $.trim($("#" + obj.pwdId).val()),
        isValidate = validatePhone({
            "phoneId": obj.phoneId
        });
    if (!isValidate) {
        return false;
    }
    if (!pwd || pwd.length == 0) {
        alert("请输入密码");
        return false;
    }
    if (pwd.length < 6 || pwd.length > 16) {
        alert("请输入6-16位密码");
        return false;
    }
    //发送请求 
    //参数
    var params = {
        phone: phone,
        pwd: pwd
    };
    //此处模拟返回数据
    var res = { "code": 1 };
    $("#" + obj.submitBtnId).attr("disabled", true);
    if (res.code == 1) {
        alert('登录成功');
        if (sucCallback) {
            sucCallback(res);
        }
    } else {
        alert('登录失败');
        if (failCallback) {
            failCallback(res);
        }
    }
    $("#" + obj.submitBtnId).attr("disabled", false);
}

// 封装注册函数  参数是{phoneId:'',pwdId:'',codeId:'',submitBtnId:''}  sucCallback=>注册成功回调 failCallback=>注册失败回调
function goRegister(obj, sucCallback, failCallback) {
    if (!obj.phoneId || !obj.pwdId || !obj.codeId||!obj.submitBtnId) {
        alert('数据有误');
        return false;
    }
    var phone = $.trim($("#" + obj.phoneId).val()),
        pwd = $.trim($("#" + obj.pwdId).val()),
        code = $.trim($("#" + obj.codeId).val()),
        isValidate = validatePhone({
            "phoneId": obj.phoneId
        });
    if (!isValidate) {
        return false;
    }
    if (code.length < 1) {
        alert("请输入手机验证码");
        return false;
    }
    if (code.length != 6) {
        alert("请输入6位数验证码");
        return false;
    }
    if (pwd.length < 1) {
        alert("请输入密码");
        return false;
    }
    if (pwd.length < 6 || pwd.length > 16) {
        alert("请输入6-16位密码");
        return false;
    }
    //请求发送手机验证码接口 
    //参数
    var params = {
        phone: phone,
        pwd: pwd,
        code: code
    };
    //此处是模拟返回数据
    var res = { "code": 1 };
    $("#" + obj.submitBtnId).attr("disabled", true);
    if (res.code == '1') {
        alert('注册成功');
        if (sucCallback) {
            sucCallback();
        }
    } else {
        alert('注册失败');
        if (failCallback) {
            failCallback(res.errorMsg);
        }
    }
    $("#" + obj.submitBtnId).attr("disabled", false);
}

//点击获取验证码倒计时 参数是obj(phoneId codeBtnId) sucCallback=>发送验证码成功回调 failCallback=>发送验证码失败回调
function clickCodeBtn(obj, sucCallback, failCallback) {
    var isValidate = validatePhone({
        "phoneId": obj.phoneId
    }),
        phone = validatePhone({
            "phoneId": obj.phoneId
        });

    if (!isValidate) {
        return false;
    }
    //请求发送验证码接口
    //参数
    var params = {
        phone: phone
    };
    //此处是模拟返回数据
    var res = { "code": 1 };
    if (res.code == '1') {
        if (sucCallback) {
            sucCallback(obj);
        }
    } else {
        alert('发送验证码失败');
        if (failCallback) {
            failCallback();
        }
    }
}

//点击获取验证码倒计时 参数是{codeBtnId:''}
function countDown(obj) {
    var countDown = 60;
    $('#' + obj.codeBtnId).attr('disabled', true).html(countDown + 's');
    var countInterval = setInterval(function () {
        countDown--;
        $('#' + obj.codeBtnId).html(countDown + 's');
        if (countDown == 0) {
            $('#' + obj.codeBtnId).attr('disabled', false).html('重新获取');
            clearInterval(countInterval);
        };
    }, 1000);
}

//验证手机号码是否正确 参数是{phoneId:''} 
function validatePhone(obj) {
    var phone = $.trim($("#" + obj.phoneId).val());
    var phoneReg = /(^1[3|4|5|7|8]\d{9}$)|(^09\d{8}$)/;
    if (!phone || phone.length == 0) {
        alert("请输入手机号码");
        return false;
    } else {
        if (!phoneReg.test(phone)) {
            alert("请输入有效的手机号码");
            return false;
        }
    }
    return true;
}

index.css代码

.hide{
    display: none;
}
form {
    width: 86%;
    margin: 10% auto;
    max-width: 400px;
    text-align: center;
}

h2 {
    line-height: .8rem;
    font-size: .3rem;
    font-weight: 600;
}
.item {
    width: 100%;
    margin-bottom: 4%;
    line-height: .5rem;
    height: .5rem;
    position: relative;
}
img {
    width: .3rem;
    left: .1rem;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}
input{
    width: 100%;
    height: 100%;
    padding-left: .45rem;
}
.btn-area{
    margin: 5% 0;
}
.login,.register {
    width: 100%;
    height: .4rem;
    line-height: .4rem;
    background: #32bd40;
    color: #fff;
    border-radius: .05rem;
    font-size: .2rem;
    cursor: pointer;
}
.switch{
    cursor: pointer;
}
.switch:hover{
    color: #32bd40;
}
.code-btn {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    background: #32bd40;
    line-height: .5rem;
    height: .5rem;
    color: #fff;
    cursor: pointer;
}

 

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值