Задать вопрос
@Maxymus1996

Есть 2 input, как запретить ввод числа во второй, значение которого меньше первого?

Есть 2 input, как запретить ввод числа во второй, значение которого меньше первого, и наоборот, запретить ввод в первый input числа, которое больше второго?
К примеру, если в первом input значение 200, чтобы во второй нельзя было ввести число меньше?
  • Вопрос задан
  • 437 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
<input id="lower" type="number" value="100">
<input id="upper" type="number" value="200">

const lower = document.querySelector('#lower');
const upper = document.querySelector('#upper');

lower.addEventListener('input', function() {
  this.value = Math.min(this.value, upper.value);
});

upper.addEventListener('input', function() {
  this.value = Math.max(this.value, lower.value);
});

UPD. Вынесено из комментариев:

Можно сделать проверку после нажатия enter?

updateValueOnEnter(lower, val => Math.min(val, upper.value));
updateValueOnEnter(upper, val => Math.max(val, lower.value));

function updateValueOnEnter(input, f) {
  input.addEventListener('keypress', ({ key, target: t }) => {
    if (key === 'Enter') {
      t.value = f(t.value);
    }
  });
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы