Hello Guys! Welcome to Coding Torque. In this blog, we are going to create an annoying submit button using HTML, CSS & JavaScript. This button doesn’t allow you to click on it until you enter a valid email and password. This is a great project to create if you are a beginner and learning web development.
Before we start, here are some JavaScript Games you might like to create:
1.Ā Snake Game using JavaScript
2.Ā 2D Bouncing Ball Game using JavaScript
3.Ā Rock Paper Scissor Game using JavaScript
4.Ā Tic Tac Toe Game using JavaScript
5. Whack a Mole Game using JavaScript
I would recommend you don’t just copy and paste the code, just look at the code and type by understanding it.
HTML CodeĀ
Starter Template
<!doctype html>
<html lang="en">
<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- CSS -->
    <link rel="stylesheet" href="style.css">
    <title>Annoying Submit Button using JavaScript with Source Code - @code.scientist x @codingtorque</title>
</head>
<body>
    <script src="script.js"></script>
</body>
</html>Paste the below code in your <body> tag
<div class="container">
    <form>
        <h2>Login</h2>
        <label for="email">Email</label>
        <input type="email" id="email" required>
        <label for="password">Password</label>
        <input type="password" id="password" required autocomplete>
        <a href="#">Forgot Password?</a>
        <button id="submitBtn">Submit</button>
        <p id="help-text"></p>
    </form>
</div>Output Till Now

CSS CodeĀ
Create a fileĀ style.css and paste the code below.
@import url("https://fonts.googleapis.com/css2?family=Poppins&family=Potta+One&display=swap");
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Poppins", sans-serif;
}
body {
  background: linear-gradient(115deg, #56d8e4 10%, #9f01ea 90%);
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.container {
  background: white;
  color: black;
  width: 20rem;
  padding: 30px 30px;
  border-radius: 10px;
}
form {
  display: flex;
  flex-direction: column;
}
form input {
  margin-bottom: 10px;
  border: 2px solid gainsboro;
  outline: none;
}
form a {
  text-decoration: none;
}
#submitBtn {
  margin-top: 30px;
  align-self: flex-start;
  padding: 5px 15px;
  background: linear-gradient(115deg, #56d8e4 10%, #9f01ea 90%);
  color: white;
  border-radius: 5px;
  border: none;
  cursor: pointer;
  transition: 0.5s ease;
}
#help-text {
  margin-top: 10px;
  font-size: 12px;
}Output Till Now

JavaScript CodeĀ
script.jsĀ and paste the code below.let submitBtn = document.getElementById("submitBtn");
let email = document.getElementById("email");
let password = document.getElementById("password");
let helpText = document.getElementById("help-text");
const validateEmail = (email) => {
    return String(email)
        .toLowerCase()
        .match(
            /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
        );
};
submitBtn.onmouseover = () => {
    if (validateEmail(email.value) && password.value.length > 8) {
        helpText.innerText = "Now you can submit"
    } else {
        if (submitBtn.style.alignSelf === "flex-end") {
            submitBtn.style.alignSelf = "flex-start"
        }
        else {
            submitBtn.style.alignSelf = "flex-end"
        }
        helpText.innerText = "You cannot submit until your email is validated and passowrd is greater than 8 characters"
    }
}


