bootstrap+jquery实现注册页

代码段

// 阻止事件默认行为和阻止事件冒泡
e.preventDefault();
e.stopPropagation();
// 得到元素属性并且根据内容生成正则表达式
var regExp = new RegExp(e.getAttribute('regexp'));

// 得到表单数据
 console.log($('form').serializeArray());
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>使用Bootstrap制作注册表单</title>
    <script src="../js/jquery-3.6.0.min.js"></script>
    <script src="../js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="../css/bootstrap.css">
</head>
<style>
    form .row {
        justify-content: center;
    }

    form label {
        text-align: end;
        align-self: center;
    }
</style>


<body>
    <div class="jumbotron text-center">
        <h1>注册</h1>
    </div>
    <!-- 禁用表单自身的验证 -->
    <form action="#" novalidate class="container">
        <div class="row form-group">
            <label for="nickname" class="col-2">昵称:</label>
            <input regexp='\S' name='nickname' type="text" placeholder="请输入昵称" class="col-7 form-control">
            <div class="offset-2 col-7 invalid-feedback">昵称不能为空</div>
        </div>
        <div class="row form-group">
            <label for="password" class="password col-2">密码:</label>
            <input regexp='^[a-zA-Z0-9]{8,20}$' id="password" name='password' type="password" class="form-control col-7"
                placeholder="请输入密码">
            <div class="offset-2 col-7 invalid-feedback">密码格式错误</div>
            <small class="form-text text-muted offset-2 col-7">
                密码长度应在8~20位之间,为字母或数字
            </small>
        </div>
        <div class="row form-group">
            <label for="re-password" class="col-2">确认密码:</label>
            <input type="password" name="re-password" id="re-password" placeholder="请再次输入密码" class="col-7 form-control">
            <div class="offset-2 col-7 invalid-feedback">两次输入密码不一致</div>
        </div>
        <div class="row form-group">
            <label  for="email" class="col-2">邮箱:</label>
            <input regexp="^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$" name='email' type="email" class="col-7 form-control" placeholder="请输入邮箱地址">
            <div class="offset-2 col-7 invalid-feedback">请输入正确的邮箱地址</div>
        </div>
        <div class="row form-group">
            <label for="sex" class="col-2">性别:</label>
            <div class="col-7 ">
                <div class="custom-control custom-radio custom-control-inline">
                    <input checked type="radio" id="man" name="sex" class="custom-control-input" value='man'>
                    <label for="man" class="custom-control-label">
                        男生
                    </label>
                </div>
                <div class="custom-radio pl-3 custom-control-inline">
                    <input type="radio" name="sex" id="women" class="custom-control-input" value='women'>
                    <label for="women" class="custom-control-label">女生</label>
                </div>
            </div>
        </div>
        <div class="row form-group">
            <label for="hobby" class="col-2">爱好:</label>
            <div class="col-7">
                <div class="custom-control custom-checkbox custom-control-inline">
                    <input name='hobby' type="checkbox" class="custom-control-input" name="hobby" id="read"
                        value='read'>
                    <label for="read" class="custom-control-label">阅读</label>
                </div>
                <div class="custom-control custom-control-inline custom-checkbox">
                    <input name='hobby' type="checkbox" class="custom-control-input" name="hobby" id="run" value="run">
                    <label for="run" class="custom-control-label">跑步</label>
                </div>
                <div class="custom-control custom-control-inline custom-checkbox">
                    <input name='hobby' type="checkbox" name="hobby" id="swim" class="custom-control-input"
                        value="swim">
                    <label for="swim" class="custom-control-label">游泳</label>
                </div>
                <div class="custom-control custom-control-inline custom-checkbox">
                    <input name='hobby' type="checkbox" name="hobby" id="draw" class="custom-control-input"
                        value="draw">
                    <label for="draw" class="custom-control-label">绘画</label>
                </div>
            </div>
        </div>
        <div class="row form-group">
            <label class="col-2">消息推送:</label>
            <div class="col-7">
                <div class="custom-switch">
                    <input  name='is_push' type="checkbox" name="push" id="push" class="custom-control-input">
                    <label for="push" class="custom-control-label">推送消息至邮箱</label>
                </div>

            </div>
        </div>
        <div class="row form-group">
            <label for="phone" class="col-2">手机号:</label>
            <input regexp="^1(3\d|4[5-9]|5[0-35-9]|6[567]|7[0-8]|8\d|9[0-35-9])\d{8}$" name="phone" type="tel" class="form-control col-7" placeholder="请输入手机号">
            <div class="offset-2 col-7 invalid-feedback">请输入正确的手机号码</div>
        </div>
        <div class="form-group text-center">
            <button class="btn btn-primary">点击注册</button>
        </div>
    </form>
</body>
<script>
    (function () {
        console.log($('#re-password'))
        $('form').on('submit', (e) => {
            e.preventDefault();
            e.stopPropagation();
            // 判断两次输入密码是否一致
            if ($('#re-password').val() != $('#password').val()) {
            $('#re-password').addClass('is-invalid');
            console.log($('#re-password').val())
            }else{
                $('#re-password').removeClass('is-invalid');
            }
            $('form').find('input[regexp]').each((i, e) => {
                var value = e.value;
                var regExp = new RegExp(e.getAttribute('regexp'));
                if (!regExp.test(value)) {
                    e.classList.add('is-invalid');
                } else {
                    e.classList.remove('is-invalid');
                }
            })
            console.log($('form').serializeArray());

        })


    })();
</script>

</html>
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值