Responsive Landing Page using CSS Grid, flexbox.
Design comparison
Solution retrospective
This is my second attempt at this challenge. I have two important questions that I would appreciate if anyone is to answer.
- 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.
- 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
- @devmothegPosted almost 3 years ago
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 helpful1@Kareemah-codesPosted almost 3 years ago@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@devmothegPosted almost 3 years ago@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 helpful0 - @Kareemah-codesPosted almost 3 years ago
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@devmothegPosted almost 3 years ago@Kareemah-codes Never say "I know enough", there's always room for improvement :]
0
Please log in to post a comment
Log in with GitHubJoin 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