Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found

Submitted

Responsive Landing Page using CSS Grid, flexbox.

@Kareemah-codes

Desktop design screenshot for the Base Apparel coming soon page coding challenge

This is a solution for...

  • HTML
  • CSS
  • JS
1newbie
View challenge

Design comparison


SolutionDesign

Solution retrospective


This is my second attempt at this challenge. I have two important questions that I would appreciate if anyone is to answer.

  1. I want my "validateEmail" function to only run when the div with the id of "form" is clicked but I can't seem to figure out how to do this. I am new to javascript. I don't even really have an idea of DOM, Jquery, or frameworks, so simple solutions will be appreciated here. If the problem will be too difficult with vanilla JS, please tell me.
  2. I actually learned CSS Grid for this project, so I am not sure if I went about using it the right way. Any suggestions on how to better go about using Grid will be highly appreciated.

You don't have to answer 2 of the questions. Answering any one of them is already a saving grace. Any other pointers or suggestions will also be appreciated.

Community feedback

@devmotheg

Posted

You should add an event listener for the first problem, of course I can just show you the code here, but I would suggest you to look up MDN's documentation on that because it will really benefit you in the long run.

For the second question, I would suggest you to do the grid challenge here on frontend mentor & just do multiple grid projects (everything is hard until you get good at it), hope that helps!

Marked as helpful

1

@Kareemah-codes

Posted

@devmotheg Hello, thanks for replying to my questions. I highly appreciated it. I wanted to say that I have tried the event listener approach but I still can seem to figure it out. I would appreciate it if you could put the code here as you said. It would really go a long way for me. But thanks all in all.

0

@devmotheg

Posted

@Kareemah-codes First you should grab a reference to your form; then you have to add an event listener; lastly do whatever you want in the if(!match) statement, hope that helps!

const FORM_CONT = document.querySelector("#form-container");

function validateEmail() {
  FORM_CONT.addEventListener("submit", event => {
    let userInput = document.getElementById("email-box").value;
    let match = EMAIL_PATTERN.test(userInput);
    if (!match) {
      event.preventDefault()
    }
  });
}
validateEmail();

Marked as helpful

0

@Kareemah-codes

Posted

Wow, Thank you so much. This was so helpful. I actually thought I knew enough about event listeners, turns out I don't . I will make sure to correct my code. Thanks a lot once again. I really appreciate it!

1

@devmotheg

Posted

@Kareemah-codes Never say "I know enough", there's always room for improvement :]

0

Please log in to post a comment

Log in with GitHub
Discord logo

Join our Discord community

Join thousands of Frontend Mentor community members taking the challenges, sharing resources, helping each other, and chatting about all things front-end!

Join our Discord