yuumatov
@yuumatov
FrontEnd разработчик, минималист

Как при изменении значения в одном инпуте обновлять другой и наоборот?

Есть <input type="range"> и <input type="number">
Нужно чтобы при изменении значения в одном из них, также менялось в другом.
javascript на нуле можно сказать, jquery только что то такое могу написать.
Как более правильно это сделать?
input_connect('#input', '#output');

function input_connect(input, output) {
	$(input).on('input', function() {
		var newval = $(this).val();
		$(output).val(newval);
	});
	$(output).on('input', function() {
		var newval = $(this).val();
		$(input).val(newval);
	});
}
  • Вопрос задан
  • 170 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
function connectInputs(selector) {
  const onInput = e => $inputs.val(e.target.value);
  const $inputs = $(selector).on('input', onInput);
  return () => $inputs.off('input', onInput);
}


connectInputs('#input, #output');

или, к чёрту jquery:

function connectInputs([...inputs]) {
  const onInput = e => inputs.forEach(n => n.value = e.target.value);
  inputs.forEach(n => n.addEventListener('input', onInput));
  return () => inputs.forEach(n => n.removeEventListener('input', onInput));
}


connectInputs(document.querySelectorAll('#input, #output'));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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