Friday, 4 June 2021

Form validation

 Form validation

HTML



<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>JS For Beginners</title>
    <link rel="stylesheet" href="js1.css">
  </head>
  <body>
    <header>
      <h1>JS For Beginners</h1>
    </header>

    <section class="container">
      <form id="my-form">
        <h1>Add User</h1>
        <div class="msg"></div>
        <div>
          <label for="name">Name:</label>
          <input type="text" id="name">
        </div>
        <div>
          <label for="email">Email:</label>
          <input type="text" id="email">
        </div>
        <input class="btn" type="submit" value="Submit">
      </form>

      <ul id="users"></ul>

      <ul class="items">
        <li class="item">Item 1</li>
        <li class="item">Item 2</li>
        <li class="item">Item 3</li>
      </ul>
    </section>
    

    <script src="js1.js"></script>
  </body>
</html>

CSS


* {
    margin0;
    padding0;
    box-sizingborder-box;
  }
  
  body {
    font-familyArialHelveticasans-serif;
    line-height1.6;
  }
  
  ul {
    list-stylenone;
  }
  
  ul li {
    padding5px;
    background#f4f4f4;
    margin5px 0;
  }
  
  header {
    background#f4f4f4;
    padding1rem;
    text-aligncenter;
  }
  
  .container {
    marginauto;
    width500px;
    overflowauto;
    padding3rem 2rem;
  }
  
  #my-form {
    padding2rem;
    background#f4f4f4;
  }
  
  #my-form label {
    displayblock;
  }
  
  #my-form input[type='text'] {
    width100%;
    padding8px;
    margin-bottom10px;
    border-radius5px;
    border1px solid #ccc;
  }
  
  .btn {
    displayblock;
    width100%;
    padding10px 15px;
    border0;
    background#333;
    color#fff;
    border-radius5px;
    margin5px 0;
  }
  
  .btn:hover {
    background#444;
  }
  
  .bg-dark {
    background#333;
    color#fff;
  }
  
  .error {
    backgroundorangered;
    color#fff;
    padding5px;
    margin5px;
  }



JS



//creating variable for each elements
const myForm = document.querySelector('#my-form');
const nameInput = document.querySelector('#name');
const emailInput = document.querySelector('#email');
const msg = document.querySelector('.msg');
const userList = document.querySelector('#users');

//when clicked submit perform what is in the submit function
myForm.addEventListener('submit',onSubmit);

function onSubmit(e){
    e.preventDefault();

//form validation
    if(nameInput.value === '' || emailInput.value === ''){
        msg.classList.add('error');
        msg.innerHTML = 'Please enter fields';
        
        setTimeout(() => msg.remove(), 3000);
    } else{
        const li = document.createElement('li');
        li.appendChild(document.createTextNode(`${nameInput.value} : ${emailInput.value}`));

        userList.appendChild(li);

        nameInput.value ='';
        emailInput.value = '';
    }   
}