JSFiddle - React, Tailwind, and code Playground

by Mahadevan Sivasubramanian

HTML

<script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<form name="email" class="form1" action="" method="post">
  <label for="email">Your Email</label>
  <input name="Email" id="email" type="email">
  <input type="submit" value="submit">
</form><br /><br />
<h2>
  Testing Form
</h2>
<form name="sample_data" class="form2">
  <label for="fname">First Name</label>
  <input name="fname" id="fname_id" type="text"><br />
  <label for="lname">Last Name</label>
  <input name="lname" id="lname_id" type="text">
  <div class="wrapper">
    <input type="submit" class="sfmc_btn" id="subm_sfmc" value="submit">
    <div id="loading-bar-spinner"  class="spinner">
      <div class="spinner-icon"></div>
    </div>
  </div>

</form>

CSS

#loading-bar-spinner.spinner {
  left: 63%;
  margin-left: 23px;
  top: 40%;
  margin-top: -10px;
  position: absolute;
  z-index: 19 !important;
  animation: loading-bar-spinner 400ms linear infinite;
}

#loading-bar-spinner.spinner .spinner-icon {
  width: 15px;
  height: 15px;
  border: solid 4px transparent;
  border-top-color: #E4002B !important;
  border-left-color: #E4002B !important;
  border-radius: 50%;
  float: left;
}

@keyframes loading-bar-spinner {
  0% {
    transform: rotate(0deg);
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

.wrapper, .spinner{
  display:inline-block;
  position:relative;
}

JavaScript

$(document).ready(
  $(function() {
    $("#loading-bar-spinner").hide();
    $('form:not(.form2)').submit(function(e) {
      e.preventDefault();
      if ($(".form1").validate().checkForm()) {
        $(this).find('input[type=submit]').prop('disabled', true);
        $(this).find('input[type=submit]').prop('value', 'Please wait...');
      }
    });

    $(".form2").submit(function(e) {
      e.preventDefault();
      if ($(".form2").validate().checkForm()) {
        $(this).find('input[type=submit]').prop('disabled', true);
        //$(this).find('input[type=submit]').prop('value', 'submit');
        $("#loading-bar-spinner").show();
      }
    });
  })
);