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

Responsive Sign-Up Form with Client Side Form Validation

accessibility, bem, sass/scss
P
Schindler Dumagat•340
@schindlerdumagat
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?

By building this project, I was able to learn the basics of client side form validation. I was able to handle input change and form submissions and display the appropriate error messages when necessary. I wrote my own validation logic without relying on third party libraries.

I believe there is more to form validation and handling so I will continue learning more about it and maybe use a third party library if I am already confident with writing validation logic from scratch.

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

Over the course of my development, I was overwhelmed by the complexities that form validation has. You need to consider a lot of things and there are many approaches you can make and I was confused on what approach to pick.

To overcome this, I started reading about form validations. I read the resources provided by frontend mentor. It really helped me learn the foundations I need. Afterwards, I tried writing some code based on what I know so far. I also did refactor the code and tried to find what I think is right. After persisting, I finally produced the code that I am proud of.

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

Here are the things I want to get feedback on:

  • What are your thoughts on my form validation JavaScript logic and how I switch between the form page and the success page?

  • How can I improve my solutions accessibility? Is there any accessibility issues that I need to fix?

Feel free to give any feedback and recommendations.

Thank you.

Code
Select a file

Please log in to post a comment

Log in with GitHub

Community feedback

  • Baktygul•70
    @MBaktygul
    Posted 3 months ago

    Hey! You did an awesome job on this project 🙌 I love that you wrote your own validation logic — that shows real initiative and a solid grasp of the fundamentals. The way you handle the form submission and switch to the success state feels super smooth and clean.

    Your code is pretty accessible too, which is great to see! One small tip: for the decorative images, you might want to either give them empty alt="" so screen readers can skip them — just a tiny thing that makes a big difference.

    Overall, you should be really proud of this. Keep going! 🚀

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