JSFiddle - React, Tailwind, and code Playground

HTML

<form>
    <div class="form_div">

        <div class="form_e  name_div">
            <input id="name" type="text" placeholder="輸入用戶名稱 ▴ ◂ ▾ ▸ ">
            <span id="name_span"></span>
        </div>

        <div class="form_e  pw_div">
            <input id="pw" type="password" placeholder="輸入密碼 ▴ ◂ ▾ ▸ ">
            <span id="pw_span"></span>
        </div>

        <div class="form_e  mail_div">
            <input id="mail" type="email" placeholder="輸入mail ▴ ◂ ▾ ▸ ">
            <span id="mail_span"></span>
        </div>

        <div class="form_e  register_div">
            <input onclick="register_cheak()" type="submit" value="註冊">
            <input type="reset" value="清空">
        </div>

    </div>
    </form>

CSS

.form_div{
    
    width: 500px;
    height: 600px;

    font-family: Comic Sans MS , Microsoft JhengHei;

    background-color: rgb(228, 228, 228);
    border-radius: 10px;

    box-shadow: 7px 7px 12px rgba(0, 0, 0, 0.6);
}

.form_e{
    width: 350px;
    height: 50px;

    position: absolute;
    margin-left: 75px;

    /*border: 1px solid red;*/
}
.form_e input{
    width: 100%;
    height: 30px;

    box-sizing: border-box;

    text-indent: 5px;   
}
.form_e span{
    display: none;

    font-size: 12px;
    /*color: red;*/
}

.name_div{
    margin-top: 75px;
}
.pw_div{
    margin-top: 175px;
}
.mail_div{
    margin-top: 275px;
}
.register_div{
    margin-top: 450px;
    display: flex;
    justify-content:space-evenly; 
    align-items: center;
}

.register_div input{
    width: 40%;

    background-color: rgb(190, 190, 190);
    border: 0;
    border-radius: 5px;

    transition: 0.3s;
}
.register_div input:hover{
    box-shadow: 0px 0px 5px 5px rgba(0, 0, 0, 0.6);
    transform: scale(1.2);
}
.register_div input:active{
    transform: scale(1);
}

JavaScript

function register_cheak(){

    var name = document.querySelector('#name');
    var pw = document.querySelector('#pw');
    var mail = document.querySelector('#mail');

    if(name.value == "" || name.value.length > 40){
        console.log('名稱欄位問題');
        document.querySelector('#name_span').textContent = '**用戶暱稱不能為[空白]、必須在[40字以內]';
        document.querySelector('#name_span').style.color = 'red';
        document.querySelector('#name_span').style.display = 'block';
        name.style.backgroundColor = "#FFD2D2";
    }
    else{
        console.log('名稱欄位ok');
        document.querySelector('#name_span').textContent = '✔';
        document.querySelector('#name_span').style.color = 'green';
        document.querySelector('#name_span').style.display = 'block';
        name.style.backgroundColor = "#E8FFF5";

    }

    if(pw.value == "" || pw.value.length < 8 || pw.value.length > 100){
        console.log('密碼欄位問題');
        document.querySelector('#pw_span').textContent = '**密碼不能為[空白]、必須在[8字以上]、必須在[100字以內]';
        document.querySelector('#pw_span').style.color = 'red';
        document.querySelector('#pw_span').style.display = 'block';
        pw.style.backgroundColor = "#FFD2D2";
    }
    else{
        console.log('密碼欄位ok');
        document.querySelector('#pw_span').textContent = '✔';
        document.querySelector('#pw_span').style.color = 'green';
        document.querySelector('#pw_span').style.display = 'block';
        pw.style.backgroundColor = "#E8FFF5";
    }

    if(mail.value.includes('@') == false || mail.value == ""){
        console.log('mail欄位問題');
        document.querySelector('#mail_span').textContent = '**Email 信箱不能為[空白]、必須[包含 @ 符號]';
        document.querySelector('#mail_span').style.color = 'red';
        document.querySelector('#mail_span').style.display = 'block';
        mail.style.backgroundColor = "#FFD2D2";
    }
    else{
        console.log('mail欄位ok');
        document.querySelector('#mail_span').textContent = '✔';
       ...