Search code examples
javascriptformsvalidationemail

Email Javascript Validation Message


I would like a message to be shown to the user, if an email address is entered incorrectly.

Html

<p>Email: <input type="email" id="email" onblur="validateEmail()" 
required>

<p id="emailMessage"></p>

Javascript

function validateEmail(email){
    var regEx = /\S+@\S+/;
    var result = regEX.test(email);

    if (result = true)
        document.getElementById("emailMessage").innerhtml = ""
    else (result = false)
        document.getElementById("emailMessage").innerhtml = "Please enter a valid 
email address"
}

Solution

  • There are many issues in your approach. Because you seems to be new to this, I will tell you what is wrong step-by-step:

    • result = true and result = false will set the value of result to a boolean. A condition has to be == or ===. Or in your case, just use the result variable, what is already an boolean because of the result of .test().
    • Use innerHTML instead of innerhtml.
    • It's not allowed to break a string in javascript like this.
    • Your variable is called regEx not regEX.
    • email is not a parameter of the function by default, you need to pass this to the function to have it available.
    • You need to check on email.value, nut just email, beacuse this is just the element.
    • else can't have a condition to check, if you want to you need to use else if, but that is not needed here.

    function validateEmail(email) {
      var regEx = /\S+@\S+/;
      var result = regEx.test(email.value);
    
      if (result) {
        document.getElementById("emailMessage").innerHTML = "";
      }
      else {
        document.getElementById("emailMessage").innerHTML = "Please enter a valid email address";
      }
    }
    <p>Email:</p>
    <input type="email" id="email" onblur="validateEmail(this)" required>
    <p id="emailMessage"></p>