This is a solution to the Intro component with sign up form challenge on Frontend Mentor. Frontend Mentor challenges help you improve your coding skills by building realistic projects.
Users should be able to:
- View the optimal layout for the site depending on their device's screen size
- See hover states for all interactive elements on the page
- Receive an error message when the
form
is submitted if:- Any
input
field is empty. The message for this error should say "[Field Name] cannot be empty" - The email address is not formatted correctly (i.e. a correct email address should have this structure:
name@host.tld
). The message for this error should say "Looks like this is not an email"
- Any
- Semantic HTML5 markup
- CSS custom properties
- Flexbox
- Vanilla JavaScript
This project taught me about email validation. Also, when the form is submitted, how to add an error message to an input field.
Here are some code snippets I am proud of:
// If the field is empty the .error class will be displayed
if (!input.value) {
input.parentElement.classList.add("error");
} else {
input.parentElement.classList.remove("error");
}
// If the email is validated no error will be displayed
if (input.type == "email") {
if (validateEmail(input.value)) {
input.parentElement.classList.remove("error");
} else {
// Show error if email address is not formatted correctly
input.parentElement.classList.add("error");
}
}
- Client-side form validation - This helped me to understand what client-side form validation is and why it's important.
- Website - Max Lockwood
- Frontend Mentor - @Max88-git
- Twitter - @maxlockwood88