JSFiddle - React, Tailwind, and code Playground

by evon0306

HTML

<div class="main">
   <h1>創建一個新帳戶</h1>
   <p>快來加入我們吧!讓我為您設置您的帳戶。已經有了?<a href="">在這裡登入</a></p>
   <div class="login">
      <ul>
         <p>您還可以使用以下方式登入</p>
         <li id="Facebook">Facebook</li>
         <li id="Line">Line</li>
         <li id="Google">Google</li>
         <li id="no"></li>
      </ul>
      <form action="">
         <p>用戶暱稱:
            <input maxlength="40" type="text" id="name">
            <span id="errorName">不能為空白、必須在40字以內</span>
         </p>
         <p>Email 信箱:
            <input type="email" id="email">
            <span id="errorEmail"> 不能為空白、必須包含 @ 符號</span>
         </p>
         <p>密碼:
            <input type="password" id="password">
            <span id="errorPassword">不能為空白、必須在8字以上、必須在100字以內</span>
         </p>
         <p><input id="submit" type="button" value="註冊" onclick="Btn()"></p>
      </form>
   </div>
</div>

CSS

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.main {
  width: 60%;
  min-width: 450px;
  margin: 3rem auto;
}
.main h1 {
  font-size: 1.5rem;
  text-align: center;
}
.main p {
  font-size: 0.8rem;
  text-align: center;
}
.main .login {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 3rem;
}
.main .login p {
  text-align: left;
}
.main .login ul {
  list-style: none;
  margin-right: 1.5rem;
}
.main .login ul li {
  font-size: 1.3rem;
  text-align: center;
  width: 180px;
  border-radius: 10px;
  margin: 1.25rem 0;
  padding: 10px;
  cursor: pointer;
}
.main .login ul #Facebook {
  background-color: #3b5998;
  color: white;
}
.main .login ul #Line {
  background-color: #07B53B;
  color: white;
}
.main .login ul #Google {
  background-color: #ff7272;
  color: white;
}
.main .login form {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  border-left: 1px solid grey;
  padding-left: 1rem;
}
.main .login form p {
  margin: 0.3rem;
  display: flex;
  flex-direction: column;
}
.main .login form p input {
  font-size: 1rem;
  margin: 0.2rem;
  border: 1px solid gray;
  border-radius: 3px;
  padding: 8px;
}
.main .login form p span {
  font-size: 0.7rem;
  color: #ff4949;
  visibility: hidden;
  transition: all 0.2s ease;
}
.main .login form p #submit {
  font-size: 1rem;
  text-align: center;
  background-color: #ffa56a;
  width: 150px;
  border-radius: 10px;
  padding: 10px;
  cursor: pointer;
}

JavaScript

function Btn(){
   let Name = document.querySelector("#name").value;
   let email = document.querySelector("#email").value;
   let password = document.querySelector("#password").value;

   if(Name == "" || Name.length >= 40){
      document.querySelector("#errorName").style.visibility = "visible";
   }else{
      document.querySelector("#errorName").style.visibility = "hidden";
   }

   if(email == "" || !email.includes("@")){
      document.querySelector("#errorEmail").style.visibility = "visible";
   }else{
      document.querySelector("#errorEmail").style.visibility = "hidden";
   }
   
   if(password == "" || password.length <= 8 || password.length >= 100){
      document.querySelector("#errorPassword").style.visibility = "visible";
   }else{
      document.querySelector("#errorPassword").style.visibility = "hidden";
   }
}