rmcg.dev/projects/FrontendMentor/newbie/base-apparel-coming-soon/js/script.js

37 lines
1.1 KiB
JavaScript

"uses strict";
const emailForm = document.getElementById("email-form");
const emailInput = document.getElementById("email");
const errorMessage = document.getElementById("errorMessage");
emailForm.addEventListener("submit", checkEmailValidity, false);
emailInput.addEventListener("focus", inputFocused, false);
/**
* @param {[Event]} event
*/
function checkEmailValidity(event) {
if (emailForm.checkValidity() === false) {
event.preventDefault();
emailInput.classList.add("error-border");
errorMessage.classList.add("error-visible");
} else {
emailInput.classList.remove("error-border");
errorMessage.classList.remove("error-visible");
}
}
// When an input has focus I remove the error state,
function inputFocused(event) {
/**
* Just for VS Code intellisense
*
* @type {HTMLInputElement}
*/
const input = event.currentTarget;
if (input.classList.contains("error-border")) {
input.classList.remove("error-border");
errorMessage.classList.remove("error-visible");
}
}