首页 > 解决方案 > 将值设置为输入字段 onchange 从其他输入字段

问题描述

我对 Javascript 完全陌生,目前我正在尝试onchange为由另一个输入字段中的事件触发的输入字段设置一个值。

代码示例 - 输入字段 1:

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

现在我想用从onchange上面触发的方法返回的值分配以下输入字段的值:

<input type='text'>

有谁知道如何解决这个问题?

标签: javascripthtmldom-eventsonchange

解决方案


只需为每个输入分配一个标识符,并将输入传递给函数:

<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 以进行更新。如果您愿意,您可以使用其他类似的东西keyupkeypress获得更实时的更新。

您也可以在不使用更简洁的 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>

推荐阅读