Испытание: Оцените сайт. Решение

let reviews = document.querySelectorAll('.review');
let subButton = document.querySelector('.submit-button');
let error = document.querySelector('.error');

for (let review of reviews) {
  review.onchange = function () {
    if (review.dataset.evaluation !== 'good') {
      error.classList.add('shown');
      subButton.disabled = true;
    } else {
      error.classList.remove('shown');
      subButton.disabled = false;
    }
  }
}

Рад помочь тем, у кого возникла проблема с этим испытанием!

2 лайка

Оцените код, если есть замечание, то скажите как можно было его улучшить. Понимаю, что код почти похож, как у автора темы, но мало ли, я что - то упускаю :grinning:

let radioButton = document.querySelectorAll('.review');
let submitButton = document.querySelector('.submit-button');
let error = document.querySelector('.error');

for (let radioButtons of radioButton) {
radioButtons.onchange = function () {
  if (radioButtons.dataset.evaluation === 'bad') {
    submitButton.disabled = true;
    error.classList.add('shown');
    } else {
      submitButton.disabled = false;
      error.classList.remove('shown');
      }
  };
};

Пришлось прибегнуть к методу forEach, по какой то причине не работал цикл forof.
reviews.forEach((review) => {
review.onchange = function(){
if(review.dataset.evaluation === ‘bad’){
error.classList.add(‘shown’);
submitButton.disabled = true;
} else {
error.classList.remove(‘shown’);
submitButton.disabled = false;
};
};
});