【问题标题】:Set value to input field onchange from other input field将值设置为输入字段 onchange 从其他输入字段
【发布时间】:2019-05-07 08:26:05
【问题描述】:

我是 Javascript 的新手,目前我正在尝试为另一个输入字段的 onchange 事件触发的输入字段设置一个值。

代码示例 - 输入字段 1:

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

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

<input type='text'>

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

【问题讨论】:

  • 您没有在methodThatReturnsSomeValue() 中尝试过任何可以向我们展示然后我们帮助调试和修复的东西吗?
  • 假设该方法返回一个文本值,那么我只想在从输入字段 1 触发 onchange 时将返回的文本值作为值分配给输入字段 2。我只想知道我是如何连接这个,可以用一个简单的代码示例显示吗?
  • 将id 添加到每个input,从input 1 中获取值,通过id 找到输入2,然后使用.value = ... 设置它的值。这是一种形式,还有其他一些形式。在google上研究“JS get element by id”和“JS set value to input”,很容易找到解决办法
  • 感谢您的回复,但对我来说,这里的问题是我不知道如何在 JavaScript 中说明这种语法,所以可以给我一个代码示例吗?

标签: javascript html dom-events onchange


【解决方案1】:

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

<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 的值,并在DOM 中找到它后将其作为值分配给input2。

请注意,如果您移除焦点,则更改事件只会在文本输入上触发。因此,例如,您必须从字段中跳出以获取字段 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>

【讨论】:

  • 我刚刚在以下站点上尝试了您的代码:jsfiddle.net 但在关注时它不会将我输入的值分配给 input2。 :-(
  • 你能保存小提琴并将链接发送到这里吗?
猜你喜欢
  • 2016-10-13
  • 2019-07-20
  • 1970-01-01
  • 2011-01-06
  • 2016-06-18
  • 2011-11-28
  • 2013-08-25
相关资源
最近更新 更多