使用layui+thymeleaf前端表单验证

废话不多,直接上代码

html页面代码:

<div class="register-container">
        <div class="register-banner">
            <img src="/img/logo.png"/>
        </div>
        <label class="error error-label">[[${lmr?.msg}]]</label>
        <form action="/manage/submitRegister" method="post" class="register-form" id="register-form">
            <li>
                <input type="text" name="account" id="account" th:value="${account}" placeholder="请输入账号" required="true" autocomplete="off" />
                <span id="accountTS"></span>
            </li>
            <li>
                <input type="text" name="name" id="name" th:value="${name}" placeholder="请输入姓名" required="true" autocomplete="off" />
                <span id="nameTS"></span>
            </li>
            <li>
                <input type="text" name="email" id="email" th:value="${email}" placeholder="请输入邮箱" required="true" autocomplete="off" />
                <span id="emailTS"></span>
            </li>
            <li>
                <input type="password" name="pwd" th:value="${pwd}" id="pwd1" placeholder="请输入密码" required="true" autocomplete="off"/>
            </li>
            <li>
                <input type="password" name="pwdtwo" th:value="${pwdtwo}" id="pwd2" placeholder="请输入重复密码" required="true" autocomplete="off"/>
                <span id="pwd2TS"></span>
            </li>
            <li>
                <div class="div-select">
                    <select name="departmentId" autocomplete="off" >
                        <option  class="option-color" th:value="-1" >---请选择部门---</option>
                        <option  class="option-color" th:each="dep:${tDepartmentList}" th:value="${dep.id}" th:text="${dep.name}"></option>
                    </select>
                    <span id="departmentTS"></span>
                </div>
            </li>
            <li>
                <button type="submit " id="submit">注册账号</button>
                <button type="button" onclick="history.go(-1);">取消</button>
            </li>
        </form>
    </div>

    <script type="text/javascript" src="js/common/jquery-3.4.1.min.js"></script>
    <script type="text/javascript" src="js/register.js"></script>

js文件代码:

// 定义开关变量
var flagAccount = false;
var flagPwd = false;
var flagEmail = false;
var flagDepartment = false;
$(function () {
    //获取标签元素
    let $account = $('#account');
    let $email   = $('#email');
    let $pwd     = $('#pwd1');
    let $pwd2    = $('#pwd2');
    let $registerForm  = $('#register-form');

    // 校验用户账号,用户姓名系统允许重名,但是账号不允许重复
    $account.focus(function () {
        $('#accountTS').html('');
    })
    $account.blur(function () {
        let accountVal = $account.val();
        $.ajax({
            url:'/validate/register/validateAccount',
            type:'GET',
            async:true,
            data: {
                account:accountVal
            },
            success:function(result) {
                if (result.code != 200) {
                    $('#accountTS').html(result.msg);
                    flagAccount = false;
                } else {
                    flagAccount = true;
                }
            },
            error:function(result) {
                $('#accountTS').html(result.msg);
            }
        });
    });

    //校验两次输入的密码是否一致
    $pwd2.focus(function () {
        $('#pwd2TS').html('');
    });
    $pwd2.blur(function() {
        let pwdVal = $pwd.val();
        let pwd2Val = $pwd2.val();
        if (pwdVal != pwd2Val){
            $('#pwd2TS').html('密码不一致');
            flagPwd = false;
        } else {
            flagPwd = true;
        }
    });

    //邮箱校验
    $email.focus(function () {
        $('#emailTS').html('');
    })
    $email.blur(function(){
        //校验邮箱格式是否正确
        let regExp = /^[a-z0-9][\w\.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$/i;
        let emailVal = $email.val();
        if(!regExp.test(emailVal)) {
            $('#emailTS').html('邮箱格式错误');
            flagEmail = false;
        } else {
            flagEmail = true;
            //校验邮箱是否已注册
            $.ajax({
                url:'/validate/register/validateEmail',
                type:'GET',
                data: {
                    email:emailVal
                },
                success:function(result){
                    if (result.code != 200) {
                        $('#emailTS').html(result.msg);
                        flagEmail = false;
                    } else {
                        flagEmail = true;
                    }
                },
                error:function(result){
                    $('#emailTS').html(result.msg);
                }
            })
        }
    })

    //校验部门
    $('select').change(function () {
        $('#departmentTS').html('');
    });

    $registerForm.submit(function() {
        if(flagAccount && flagPwd && flagEmail && $('select').val() != '-1') {
            return true;
        }
        else {
            if (!flagAccount) {
                $('#accountTS').html('账号校验失败');
            }
            if (!flagPwd) {
                $('#pwd2TS').html('密码校验失败');
            }
            if (!flagEmail) {
                $('#emailTS').html('邮箱校验失败');
            }
            if ($('select').val() == '-1') {
                $('#departmentTS').html('尚未选择部门');
            }
            return false;
            let email=$email.val()
            let name = $name.val()
            $.ajax({
                url:'/manage/registered/detectrepeat/sendemail',
                type:'GET',
                async:true,
                timeout:5000,
                data: {
                    email:email,
                    name: name
                },
                success:function(data){//请求成功之后的返回结果
                },
                error:function(xhr,textStatus){//请求失败之后的返回错误信息
                    console.log('错误',xhr.responseText);
                    console.log(xhr);
                    console.log(textStatus);
                }
            })
        }
    })
})
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个基于Spring框架的快速开发框架,通过提供一系列的开箱即用的功能和优化配置,简化了Java后台应用的开发流程。 Thymeleaf是一个Java模板引擎,用于在服务端渲染HTML页面。它可以和Spring Boot结合使用,通过在HTML页面中使用Thymeleaf语法,实现页面的动态渲染和数据绑定。 Layui是一个国内比较流行的前端UI框架,提供了大量的CSS样式和JavaScript组件,可以快速构建美观、响应式的前端界面。 Apache Shiro是一个强大的开源安全框架,可以用于认证、授权和加密操作。它提供了对用户身份验证、角色和权限管理的支持,可以帮助开发者快速实现应用的安全控制。 Redis是一个高性能的内存数据库,常用于缓存和存储数据。它支持多种数据结构和操作,可以用于实现分布式锁、消息队列等功能,提高系统的性能和可扩展性。 MyBatis Plus是一个基于MyBatis框架的增强工具,提供了更简单、更便捷的数据库操作方式。它通过代码生成器和一系列的增强功能,简化了数据层的开发工作,提高了开发效率。 综上所述,可以使用Spring Boot作为后台框架,集成Thymeleaf实现页面渲染和数据绑定,使用Layui构建前端界面,使用Apache Shiro进行安全控制,使用Redis进行数据缓存和存储,使用MyBatis Plus进行数据库操作。这样搭建的后台系统可以实现高效、安全、可扩展的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值