VanillaWebProjects -01 Form Validator

VanillaWebProjects 是我从github上看到一个只用HTML,CSS和javascript实现的项目,其中包含了20个小项目,我打算通过实现这些小项目,对我这段时间学习的三件套做一个练习。(不知道我学的咋样呜呜/(ㄒoㄒ)/~~)
01 Form Validator
目标效果:
在这里插入图片描述
项目简介与规范:
在这里插入图片描述
其实简单的来说,就是实现一个表单,通过提交按钮来检查输入的内容是否合法。

接下来是我的代码啦~

<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>Document</title>
    <link rel="stylesheet" href="../CSS/reset.css">
    <style>
        /* 背景板 */
        form{
            width: 400px;
            height: 550px;
            background-color: white;
            margin: 50px auto;
            border-radius: 1%;
            box-shadow: 0 0 10px rgba(0,0,0,.4);
            text-align: center;
        }
        /* 标题样式 */
        h2{
            font-weight: bold;
            padding-top: 40px;
            padding-bottom: 20px;
            font-size: 24px;
        }
        p{
            font-size: 16px;
            color: rgb(119,119,119);
            text-align: left;
            margin:6px 40px;
            margin-top: 10px;
            margin-right: none;
        }
        input{
            width: 310px;
            height: 35px;
            border: 1.5px solid rgb(240,240,240);
            /* border-radius: 3%; */
        }
        #btn{
            margin-top: 20px;
            width: 320px;
            height: 45px;
            color:white;
            font-size: 18px;
            background-color: rgb(52, 152, 219);
        }
        #tag1,#tag2,#tag3,#tag4{
            color:red;
            font-size: 10px;
            margin: 5px 40px;
            margin-right: none;
            visibility: hidden;
        }
        
    </style>
</head>
<body>
    <form action="javascript:;">
        <h2>Register With Us</h2>
        <p>Username</p>
        <input type="text" placeholder="Enter username" id="username" autocomplete="off">
        <p id="tag1">Username must be at least 3 characters</p>
        <p>Email</p>
        <input type="text" placeholder="Enter email" id="email" autocomplete="off">
        <p id="tag2">Email is not valid</p>
        <p>Password</p>
        <input type="password" placeholder="Enter password" id="password">
        <p id="tag3">Password must be at least 6 characters</p>
        <p>Confirm Password</p>
        <input type="password" placeholder="Enter password again" id="password2">
        <p id="tag4">Password2 is required</p>
        <input type="submit" value="Submit" id="btn">
    </form>

    <script>
        //获取输入值
        var username = document.getElementById("username");
        var email = document.getElementById("email");
        var password = document.getElementById("password");
        var password2 = document.getElementById("password2");
        var tag1 = document.getElementById("tag1");
        var tag2 = document.getElementById("tag2");
        var tag3 = document.getElementById("tag3");
        var tag4 = document.getElementById("tag4");
        var btn =document.getElementById("btn");

        // btn点击事件
        btn.onclick = function(){

            //判断姓名输入是否正确
            if(/.{3,}/.test(username.value) == false){
                tag1.style.visibility = "visible";
                username.style.border = "2px solid rgb(231, 76, 60)";
            }else{
                tag1.style.visibility = "hidden";
                username.style.border = "2px solid rgb(46, 204, 113)";
            }

            //判断邮件是否正确
            if(/\w+@\w+\.[A-z]{2,}/.test(email.value)==false){
                tag2.style.visibility = "visible";
                email.style.border = "2px solid rgb(231, 76, 60)";
            }else{
                tag2.style.visibility = "hidden";
                email.style.border = "2px solid rgb(46, 204, 113)";
            }

            //判断密码是否正确
            if(/.{6,}/.test(password.value) == false){
                tag3.style.visibility = "visible";
                password.style.border = "2px solid rgb(231, 76, 60)";
            }else{
                tag3.style.visibility = "hidden";
                password.style.border = "2px solid rgb(46, 204, 113)";
            }

            //判断密码是否再次输入正确
            if(password2.value==""){
                tag4.style.visibility = "visible";
                password2.style.border = "2px solid rgb(231, 76, 60)";
            }else if(password.value!=password2.value){
                tag4.innerHTML = "Passwords do not match";
                tag4.style.visibility = "visible";
                password2.style.border = "2px solid rgb(231, 76, 60)";
            }else{
                tag4.style.visibility = "hidden";
                password2.style.border = "2px solid rgb(46, 204, 113)";
            }
        }
    </script>
</body>
</html>

运行效果如下:
(可能样式有一点不太一样TAT,俺尽力了)
在这里插入图片描述
当输入错误或者没有输入时,点击提交之后,输入框下面会出现红色提示
在这里插入图片描述
当输入正确时:
在这里插入图片描述
当第二次输入的密码与第一次不匹配时,会出现提示:
在这里插入图片描述
总结:
这个小项目的效果大概就是这样子,然后我写完之后才发现我没有按照项目规范来写我的判断函数TAT,这是很不好的一点,希望下次可以改进!然后这个小项目主要是让我对正则表达式进行了一个练习与运用,以及让我对所学的CSS样式进行了一个复习回顾。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值