Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ekazakov/bf9ab846e88c1cb58ec2e79bda74b096 to your computer and use it in GitHub Desktop.
Save ekazakov/bf9ab846e88c1cb58ec2e79bda74b096 to your computer and use it in GitHub Desktop.
const roomNumberInput = adForm.querySelector("#room_number");
const capacityInput = adForm.querySelector("#capacity");

// на selectы с кол-вом комнат и гостей надо добавить обработчик на событие change
// Если пользователь изменил кол-во гостей(capacity), то сработает обработчик события для capacityInput
// в нем надо проверить, что текущее кол-во гостей можно разместить в выбранном кол-ве комнат
// Аналогично для кол-ва комнат(roomNumber).

capacityInput.addEventListener("change", (evt) => {
  // evt.target.value — текущее кол-во гостей
  // parseInt нужен, т.к. evt.target.value — это строка и нам надо сконвертировать ее в число
  const capacity = parseInt(evt.target.value, 10);
  const roomNumber = parseInt(roomNumberInput.value, 10);


  // если 1 гость, то он не может жить только в 100 комнатах
  if (capacity === 1 && roomNumber === 100) {
    capacityInput.setCustomValidity(
      "Сообщение о недопустимом сочетании кол-ва комнат и гостей"
    );
  // если 2 гостя, то он не могут жить только в 100 комнатах или в 1 комнате
  } else if (capacity === 2 && (roomNumber === 100 || roomNumber === 1)) {
      capacityInput.setCustomValidity(
          "Сообщение о недопустимом сочетании кол-ва комнат и гостей"
      );
  } else if (/* случай для 3 гостей*/) {
  } else if (/* случай для 0 гостей*/) {
  } else {
    // если дошли до этого блока, значит гостей можно разместить в выбранном кол-ве комнат
    // setCustomValidity("") — убирате сообщение о невалидности
    capacityInput.setCustomValidity("");
  }

  capacityInput.reportValidity();
});

roomNumberInput.addEventListener("change", (evt) => {
    const roomNumber = parseInt(evt.target.value, 10);
    const capacity = parseInt(capacityInput.value, 10);

  if (/*...*/) {
    capacityInput.setCustomValidity("...");
  } else {
    capacityInput.setCustomValidity("");
  }

  capacityInput.reportValidity();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment