注册事件以更改javascript中的html输入值

注册事件以更改javascript中的html输入值,javascript,html,input,addeventlistener,Javascript,Html,Input,Addeventlistener,是否可以注册一个事件来更改javascript中的html输入值 我的意思是我有一个输入。当我在其中输入时,会注册一个事件,但是当我通过javascript更新它的(输入)值时,input事件不会被调用。这里的变通方法是什么 例如,当您在输入中键入时,结果文本会更新,但当您使用按钮(换句话说,通过javascript)清除输入时,input事件不会注册 html .我发现,如果您将事件侦听器中的逻辑分离为它自己的函数,您可以在按下按钮时调用该函数 const input = document.g

是否可以注册一个事件来更改javascript中的html输入值

我的意思是我有一个输入。当我在其中输入时,会注册一个事件,但是当我通过javascript更新它的(输入)值时,
input
事件不会被调用。这里的变通方法是什么

例如,当您在输入中键入时,结果文本会更新,但当您使用按钮(换句话说,通过javascript)清除输入时,
input
事件不会注册

html


.

我发现,如果您将事件侦听器中的逻辑分离为它自己的函数,您可以在按下按钮时调用该函数

const input = document.getElementById("inpt");
input.addEventListener('input', function() {
  changeText();
});

const btn = document.getElementById("btn");
btn.addEventListener('click', function() {
  input.value = "";
  changeText();
});

function changeText() {
  const resultingText = document.getElementById("txtDiv");
  resultingText.innerHTML = input.value;
  alert("called");
}

JS Fiddle:

我发现,如果您将事件侦听器中的逻辑分离为它自己的函数,您可以在按下按钮时调用该函数

const input = document.getElementById("inpt");
input.addEventListener('input', function() {
  changeText();
});

const btn = document.getElementById("btn");
btn.addEventListener('click', function() {
  input.value = "";
  changeText();
});

function changeText() {
  const resultingText = document.getElementById("txtDiv");
  resultingText.innerHTML = input.value;
  alert("called");
}

JS Fiddle:

我个人使用
keyup
事件,但这可能是一种不好的做法,我不知道,但我检查了您的代码,它工作正常。事件侦听器未在用户输入上注册,它在Dom上ready@NullPointer,单击按钮时,生成的文本应为空。它不会发生。我没有告诉你代码不起作用,我提供了代码来解释我想要达到什么效果,以及到目前为止我做了什么。如果你动态地更改输入的值,那么你也可以在单击按钮时更改div的innerHTML。确定。在这种情况下,输入事件不会隐式触发,你必须以我使用的方式显式执行
keyup
事件,但这可能是错误的做法,我不知道,但我检查了您的代码,它工作正常。事件侦听器未在用户输入上注册,而是在Dom上注册ready@NullPointer,单击按钮时,生成的文本应为空。它不会发生。我没有告诉你代码不起作用,我提供了代码来解释我想要达到的效果以及我到目前为止的效果。如果动态更改输入的值,那么也可以在单击按钮时更改div的innerHTML。确定。在这种情况下,输入事件不会隐式触发,而必须显式触发
const input = document.getElementById("inpt");
input.addEventListener('input', function() {
  changeText();
});

const btn = document.getElementById("btn");
btn.addEventListener('click', function() {
  input.value = "";
  changeText();
});

function changeText() {
  const resultingText = document.getElementById("txtDiv");
  resultingText.innerHTML = input.value;
  alert("called");
}