Я пытаюсь отобразить одно сообщение об ошибке, когда пользователь отправляет форму с недействительным адресом электронной почты, но отображает другое сообщение об ошибке, если пользователь отправляет поле ПУСТОЙ электронной почты.
Каким-то образом мне нужно изменить сообщение об ошибке электронной почты при отправке формы.
const invalidEmail = document.createElement('span');
invalidEmail.className = "error";
invalidEmail.id = "invalidEmail";
invalidEmail.textContent = "Please enter a valid Email";
//////////////////////////////////////////////////////
const emptyEmail = document.createElement('span');
emptyEmail.className = "error";
emptyEmail.id = "emptyEmail";
emptyEmail.textContent = "Email is required";
//////////////////////////////////////////////////////
function validateEmail() {
// get value from email input
const email = $("#mail").val();
const regexEmail = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
if (regexEmail.test(email)) {
return true;
} else if (email === "") {
alert('enter email');
return false;
}
}
$("#mail").keyup(function() {
if (emptyEmail()) {
// if the user email is valid set the input text and border to red
email.style.border = "2px solid green";
emptyEmail.style.display = "none";
return true;
} else {
// if the user email is not valid set the input text and border to red
email.before(emptyEmail);
emptyEmail.style.fontSize = "1em"
emptyEmail.style.color = "red";
email.style.border = "2px solid red";
emptyEmail.style.display = "block";
return false;
}
});
$("#mail").keyup(function() {
if (validateEmail()) {
// if the user email is valid set the input text and border to red
email.style.border = "2px solid green";
invalidEmail.style.display = "none";
return true;
} else {
// if the user email is not valid set the input text and border to red
email.before(invalidEmail);
invalidEmail.style.fontSize = "1em"
invalidEmail.style.color = "red";
email.style.border = "2px solid red";
invalidEmail.style.display = "block";
return false;
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label for="mail">Email:</label>
<input type="email" id="mail" name="user-email" placeholder="Enter Valid Email">