JSFiddle - React, Tailwind, and code Playground

HTML

<form id="cookieForm" name="cookieForm" action="submit form.html" method="get">

  <fieldset class="field_set_1">
    <!-- Below sets the title of the form-->
    <legend>Customer Order Form Information:</legend> 


    <!-- Creates the first left label to specify what should be placed in the text box
         the the right of the label. The rest below does the same.-->
 
    <label for="firstName">First Name:</label>
    <input type="text" id="firstName" name="firstName" class="validate">
    <span id="firstname_error">*</span><br>

    <label for="orderNumber">Order Number:</label>
    <input type="text" id="orderNumber" name="orderNumber" class="validate">
    <span id="orderNumber_error">*</span><br>
  
    <label for="dateOfOrder">Date of Order:</label>
    <input type="text"  id="dateOfOrder" name="dateOfOrder" class="validate">
    <span id="dateOfOrder_error">*</span><br>

    <label for="emailAddress">Email Address:</label>
    <input type="text" id="emailAddress" name="emailAddress" class="validate">
    <span id="emailAddress_error">*</span><br>

    <label>&nbsp;</label>
  
    <!-- Always use a "submit" button to initiate form submission, even
         if there will be form validation                                 -->
    <input type="submit" id="form_submission" value="Submit this Form">
  </fieldset>

</form>

CSS

body{
       background-color:#FBFBE8;
}

/* Tells HTML5 to find the font-type-face that my OS has and then use that for heading 1
  and also centers the first heading */  

h1{
  font-family:Arial, Helvetica, sans-serif; 
  text-align:center;        
}


/* Tells HTML5 to use any of the font-types for my first paragraph in HTML source file
   if one is not available. Also clears some white space 
   from the left margin of the paragraph and finally tells it to give that paragraph
   a size of 20 pixels. */

p {
  font-family:Arial, Helvetica, sans-serif; 
  padding: 20px;
  font-size:20px;  
}

label{
	float: left; 
	width: 11em; 
	text-align: right;
        font-family:Arial, Helvetica, sans-serif; 
        color:#800000;

}
  
input{
  	  margin-left: 1em; 
  	  margin-bottom:.5em; 
}



span {
  	  color: red; 
}

.field_set_1{
              border-color: purple;
              border-style: solid;
}

#form_submission{ background-color:black; color:white; }

legend{ 
   font-family:Arial, Helvetica, sans-serif; 
   color:blue;
} 

/* All of the classes are just for positioning and floating the four 
same images around the form input information   */

.Wrap1{
             float:right;
             margin:40px;
             width:200px; 
             height:200px;
}
.Wrap2{
             float:left;
             margin:40px;
             width:200px; 
             height:200px;
}

.clearfix {
  clear: both;
}

JavaScript

// W3C DOM Event model instead of node event properties:
window.addEventListener("DOMContentLoaded", function() {
  
  // Since we're now using the submit event, we hook into that event:
  // Use camelCase for JavaScript identifiers
  var form = getElem("cookieForm");
  form.addEventListener("submit", validate);	
  
  getElem("emailAddress").focus(); 
  
  // Opening curly braces should appear on the same line as the declaration they open
  // Dollar signs are legal identifiers, but usually denote libraries (like JQuery) and
  // can be confusing if you are not using those libraries.
  function getElem (id) {
    return document.getElementById(id); 
  }

  function validate(evt) {   
    var inputs = document.querySelectorAll(".validate");
  
    // It's better logic to assume false, which avoids "false positives"
    var isValid = false;
    
    // Loop through the fields that need validation
    for (var i = 0; i < inputs.length; ++i){
    
      var message = ""; // This is the potential error message
      
      // Validate the input according to its id:
      switch (inputs[i].id) {
          case "firstName" :
            // You can't check a single value against a comma-separated list, you have to check
            // it against each value you are interested in:
            isValid = (inputs[i].value !== "Cherry" && inputs[i].value !== "Micheal" && 
                       inputs[i].value !== "Sandra" && inputs[i].value !== "Cookie") ? false : true;
            message = (!isValid) ? "This person does not exist." : "";
            break;
          case "orderNumber" :
            // Remember, HTML form fields always return strings, not numbers
            isValid = (inputs[i].value !== "3134" && inputs[i].value !== "4234" && 
                       inputs[i].value !== "9234" && inputs[i].value !== "3566") ? false : true;
            message = (!isValid) ? "Invalid Order Number." : "";
            break;
          case "dateOfOrder" :
            isValid =...