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"
}
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()
.innerHTML
instead of innerhtml
.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.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>