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

Frontend Mentor Newsletter Sign-Up Built With HTML/CSS/JS

Dylan 290

@dquinn089

Desktop design screenshot for the Newsletter sign-up form with success message coding challenge

This is a solution for...

  • HTML
  • CSS
  • JS
2junior
View challenge

Design comparison


SolutionDesign

Solution retrospective


What are you most proud of, and what would you do differently next time?

I initially structured the project with HTML, but faced difficulties when moving to CSS and incorporating JavaScript. After some styling, I decided to focus on getting the JavaScript logic working with the HTML first. I used display properties to hide sections for testing and saved most of the CSS styling for last. In future projects, I'll prioritize accessibility in my HTML by using both IDs and classes for better distinction between styling and logic. I'll also employ debugging methods to ensure functionality.

What challenges did you encounter, and how did you overcome them?

This project really stressed the importance of figuring out a proper work flow. I kept finding myself going back and forth between the styling and the logic and HTML having to make proper adjustments for each change that was made in any of the code. I'm definitely coming back from this with a better idea of how to approach building all aspects of the project.

What specific areas of your project would you like help with?

One thing that bugs me is that the error message logic works when there is no input in the input box, but when you type anything in other than an email, a built in pop-up windows displays saying "Please include an '@' in the email address. 'input' is missing an '@'.". I'm not sure if this is because i set the input type="email", or something else. It's just annoying because i built a regex to check for more than just an '@'. Unless someone can give me any tips, I might come back in the future and get rid of the regex just to see if the validation function still works, and change the input type for testing.

Community feedback

Alex 3,130

@Alex-Archer-I

Posted

Hey!

Yes, the thing which bothered you is the default browser validation logic. You can get rid of it by adding novalidate attribute to the form, but in general it is considered bad to accessibility.

I'm sorry I doesn't have much time right now to look thorough through your code, but why there is a success message instead of the form in the mobile version?

Anyway, I have no doubt that you did great work as always =)

Marked as helpful

1

Dylan 290

@dquinn089

Posted

@Alex-Archer-I I fixed the mobile display view, I just had to initialize the proper visibility states in the script:

signupSection.style.display = "flex";
successSection.style.display = "none";

I will also take your advice and just let the browser validation logic do its thing. Appreciate the tips as always!

1
Alex 3,130

@Alex-Archer-I

Posted

@dquinn089

Now I find a time to look to your code =)

I want to express my disagreement (in the most polite and correct manner) with usage of id to styling. That way just doesn't lead to any good =) And also about px for font sizes =)

But overall as I thought it is a cool work! And your validation is still necessary since it checked not only @.

By the way, maybe learning of some popular naming conventions - BEM or OOCSS - could help you to better tune your mind to HTML-CSS connection.

Marked as helpful

1
Dylan 290

@dquinn089

Posted

@Alex-Archer-I 100% agree with you on the use of ID's in styling. I didn't realize until the end how awful it makes the code in terms of readability and organization. The distinct usage between classes and Id's really didn't click in my head until JS got involved.

Thank you for the tips on BEM and OOCSS, definitely going to to be utilizing these!

1
Alex 3,130

@Alex-Archer-I

Posted

@dquinn089

The trials and errors are very decent way to learn something, so it's cool that you came to this conclusion about ids =)

And also there are more methodologies than BEM and OOCSS, it's just those I'm more familiar with =)

1
MikDra1 5,990

@MikDra1

Posted

Nice one @Dylan 😁😁😁

If you want to improve your solution you should take care about the email that get's rendered in the success message in bold ✉

Good job and keep going 😀😁😉

0

@A-noob-in-Coding

Posted

Hi there,

For email validation, custom made regex would be better as you can strongly check for any wrong emails as input

For reference I used this regex

const emailRegex = /^[a-zA-Z0-9.]+@[^\s@]+\.[^\s@]+$/;
0

Dylan 290

@dquinn089

Posted

@A-noob-in-Coding This is my current function with the regex i built:

function validateEmail (email) {
  const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
  return re.test(String(email).toLowerCase());
}

It's in the JS but it seems to not be functioning.

0

@A-noob-in-Coding

Posted

@dquinn089

The difference between your regex and mine is that mine only allows alphanumeric characters and dot before the @ part of email, whereas yours allow all characters except whitespace and @ before the @ part

Rest is same,

Although some special characters are allowed Source validity.com

Hope it helps 🥰@dquinn089

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