Skip to content
  • Unlock Pro
  • Log in with GitHub
Solution
Submitted 11 months ago

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

Dylan•290
@dquinn089
A solution to the Newsletter sign-up form with success message challenge
View live sitePreview (opens in new tab)View codeCode (opens in new tab)

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.

Code
Select a file

Please log in to post a comment

Log in with GitHub

Community feedback

  • Alex•3,130
    @Alex-Archer-I
    Posted 11 months ago

    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
  • P
    MikDra1•7,450
    @MikDra1
    Posted 11 months ago

    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 😀😁😉

  • Abd Ur Rehman•360
    @A-noob-in-Coding
    Posted 11 months ago

    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@]+$/;
    

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
Frontend Mentor logo

Stay up to datewith new challenges, featured solutions, selected articles, and our latest news

Frontend Mentor

  • Unlock Pro
  • Contact us
  • FAQs
  • Become a partner

Explore

  • Learning paths
  • Challenges
  • Solutions
  • Articles

Community

  • Discord
  • Guidelines

For companies

  • Hire developers
  • Train developers
© Frontend Mentor 2019 - 2025
  • Terms
  • Cookie Policy
  • Privacy Policy
  • License

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

How does the accessibility report work?

When a solution is submitted, we use axe-core to run an automated audit of your code.

This picks out common accessibility issues like not using semantic HTML and not having proper heading hierarchies, among others.

This automated audit is fairly surface level, so we encourage to you review the project and code in more detail with accessibility best practices in mind.

How does the CSS report work?

When a solution is submitted, we use stylelint to run an automated check on the CSS code.

We've added some of our own linting rules based on recommended best practices. These rules are prefixed with frontend-mentor/ which you'll see at the top of each issue in the report.

The report will audit all CSS, SCSS and Less files in your repository.

How does the HTML validation report work?

When a solution is submitted, we use html-validate to run an automated check on the HTML code.

The report picks out common HTML issues such as not using headings within section elements and incorrect nesting of elements, among others.

Note that the report can pick up “invalid” attributes, which some frameworks automatically add to the HTML. These attributes are crucial for how the frameworks function, although they’re technically not valid HTML. As such, some projects can show up with many HTML validation errors, which are benign and are a necessary part of the framework.

How does the JavaScript validation report work?

When a solution is submitted, we use eslint to run an automated check on the JavaScript code.

The report picks out common JavaScript issues such as not using semicolons and using var instead of let or const, among others.

The report will audit all JS and JSX files in your repository. We currently do not support Typescript or other frontend frameworks.

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub