Установить значение для поля ввода onchange из другого поля ввода - PullRequest
0 голосов
/ 05 декабря 2018

Я совершенно новичок в javascript, и в настоящее время я пытаюсь установить значение для поля ввода, вызванного событием onchange из другого поля ввода.

Пример кода - поле ввода 1:

<input type='text' onchange='methodThatReturnsSomeValue()'>

Теперь я хочу присвоить значение следующего поля ввода возвращенному из метода, вызванного из onchange выше:

<input type='text'>

Кто-нибудь знает, как это можно решить?

1 Ответ

0 голосов
/ 05 декабря 2018

Просто назначьте идентификатор каждому входу и передайте вход функции:

<input type="text" id="myInput1" onchange="myChangeFunction(this)" placeholder="type something then tab out" />
<input type="text" id="myInput2" />

<script type="text/javascript">
  function myChangeFunction(input1) {
    var input2 = document.getElementById('myInput2');
    input2.value = input1.value;
  }
</script>

Вы передаете input1 функции в качестве аргумента, затем мы получаем значение input1 и присваиваем его в качестве значения input2 после его нахождения в DOM.

Обратите внимание, что событие изменения будет срабатывать только при вводе текста, если вы удалите фокус.Так, например, вам нужно выйти из поля, чтобы получить поле 2 для обновления.Если вы хотите, вы можете использовать что-то еще, например keyup или keypress, чтобы получить более живое обновление.

Вы также можете сделать это, не используя атрибут HTML, который немного чище:

<input type="text" id="myInput1" />
<input type="text" id="myInput2" />

<script type="text/javascript">
  var input1 = document.getElementById('myInput1');
  var input2 = document.getElementById('myInput2');

  input1.addEventListener('change', function() {
    input2.value = input1.value;
  });
</script>
...