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();
});
Created
July 14, 2021 18:40
-
-
Save ekazakov/bf9ab846e88c1cb58ec2e79bda74b096 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment