Вопрос про валидацию полей. Как проверять и сбрасывать значение только если текущее значение не подходит?

Есть валидация двух полей.

const adForm = document.querySelector('.ad-form');
const roomForGuest = {
  1: ['1'],
  2: ['1', '2'],
  3: ['1', '2', '3'],
  100: ['0'],
};

adForm['room_number'].addEventListener('change', (e) => {
  const numberRooms = roomForGuest[e.target.value];
  for (const currentCapacityItem of adForm.capacity.children) {
    currentCapacityItem.disabled = !numberRooms.includes(currentCapacityItem.value);
  }
  adForm.capacity.value = numberRooms[0];
});

Как проверить и сбросить значение только если текущее значение не подходит. Например если выбрано 2 гостя, а потом выбирается 3 комнаты - то не сбрасывать количество гостей до 1.


Ответы (1 шт):

Автор решения: learn_learn
const adForm = document.querySelector('.ad-form');
const roomForGuest = {
  1: ['1'],
  2: ['1', '2'],
  3: ['1', '2', '3'],
  100: ['0'],
};

adForm['room_number'].addEventListener('change', (e) => {
  const numberRooms = roomForGuest[e.target.value];
  for (const currentCapacityItem of adForm.capacity.children) {
    currentCapacityItem.disabled = !numberRooms.includes(currentCapacityItem.value);
  }
  if (adForm.room_number.value < adForm.capacity.value) {
    adForm.capacity.value = numberRooms[0];
  }
});
→ Ссылка