【问题标题】:Find the value of an input with an addEventListener after the value is changed by a select box选择框更改值后,使用 addEventListener 查找输入的值
【发布时间】:2022-11-20 03:28:23
【问题描述】:

我正在尝试使用 eventListener 检查输入框中的输入 (type="number"):

aE.addEventListener("input", (e) => {
  console.log(aE.value);
}

但我真正需要eventListener 来获取的是输入框中value 的任何更改。这个特定的输入框有一个选择,用户可以在其中选择常量的几个数字选项之一。但是 eventListener 的当前方法不会从该选择中获取值的变化。

每次更改时获取输入框值的正确语法是什么?

【问题讨论】:

  • 值得注意的是,某些浏览器特定的扩展可能不会触发某些事件
  • 我尝试了几个浏览器。火狐和铬。

标签: javascript addeventlistener


【解决方案1】:

我不确定是否输入听众做你想要的

尝试使用改变|按键|按键|按键

【讨论】:

  • 我试过改变......没有。所有按键事件都需要键盘输入。这是通过选择按钮输入的,然后注入 JS。
【解决方案2】:

您可以使用更改事件来获取值。

selectEl.addEventListener("change", (e) => {
  console.log(e.target.value);
}); 

Try this example on codepen

【讨论】:

  • 这在这种情况下不起作用。我已经通过 JS 更改了输入值,并且可以在计算中使用它。但是我不能将该更改用作 eventListener - 如果我使用“更改”,它听不到任何声音。
【解决方案3】:

假设 aE 已由一些较早的代码定义为从 querySelector 解析。

您可能想要收听更改事件,因为它来自 select 输入。此外,您需要添加 target 以获取内部值并返回事件,而不是元素。

const aE = document.getElementById('idOfAe');
 
aE.addEventListener("change", (e) => {
  console.log(e.target.value)
});

【讨论】:

  • 这是行不通的。我可以通过 JS 更改输入的值,但我不能在侦听更改的 eventListener 中使用该新值。这个实际上忽略了所有变化。
猜你喜欢
  • 1970-01-01
  • 2021-11-27
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多