Interactive Rating Component

Solution retrospective
This is my solution for the Interactive Rating Component.
It was overall easy and enjoyable building this project, however I faced a difficulty regarding functionality:
- I would like to learn how can I disable the button defined in the
.submit-btn
class when no value is selected. I tried adding the following snippet:if(finalRating.innerHTML === '') { submitBtn.disabled = true; }
However, it blocked my button even after I had chosen a rating value between the available ones. With the current code you can see that rating values display perfectly in the.thank-you
state.
I would appreciate your feedback and would like to receive your comments and perspectives regarding the project. Thanks a lot!
Please log in to post a comment
Log in with GitHubCommunity feedback
- @LoaiEsam37
i have a suggestion but i do not think it is the best but i use it in my project and i think it`s good to think out the box, you can add the button event listener inside the rating buttons event listener so that it start listening for the button when the rating buttons get clicked like this:
const ratingState = document.getElementById("rating--state"); const thankyouState = document.getElementById("thank__you--state"); const submitButton = document.getElementById("submit__rating"); const ratingSpan = document.getElementById("rating"); const ratingButtons = document .getElementsByClassName("card__btns")[0] .getElementsByTagName("button"); Object.values(ratingButtons).forEach((e) => { e.addEventListener("click", () => { ratingSpan.innerHTML = e.innerHTML; submitButton.addEventListener("click", () => { ratingState.classList.add("hidden"); thankyouState.classList.remove("hidden"); }); }); });
and this is my sourcecode
happy coding!!!
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