Age Calculator App using BEM methodology

Solution retrospective
I had some difficulties implementing error handling for incorrect input. If anyone has any suggestions or tips for improving my error handling, I would greatly appreciate it.
Please log in to post a comment
Log in with GitHubCommunity feedback
- @rinster
Amazing job on the animation and in vanilla JS too! I did mines in Vue.js and used Moment.JS library to handle the date logic.
For handling errors, I recommend having a global object to hold your error states and update it accordingly:
const errors = { 'errorsPresent' : 'false', 'dayError': "", 'monthError': "", 'yearError': "" }
I use an
errorsPresent
key so I don't have to check the entire object. A sample validation logic can look like this:// Year let currentYear = new Date().getFullYear(); if (yearInput === "") { errors.yearError = "This field is required"; errors.errorsPresent = true; } else if (isNaN(Number(yearInput))) { errors.yearError = "Must be a valid year"; errors.errorsPresent = true; } else if (Number(yearInput) > currentYear) { errors.yearError = "Must be in the past"; errors.errorsPresent = true; }
So if
errors.errorsPresent === true
you can update the DOM by inserting css style classes and the error messages from your errors object..is-danger--border { border: 1px solid hsl(0, 100%, 67%); } .is-danger--text { color: hsl(0, 100%, 67%); }
Don't forget to clear your error states and messages if the user updates the date again. Hope this helps :)
Marked as helpful
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