【发布时间】:2018-03-19 17:50:45
【问题描述】:
正如您在下面的代码部分中看到的,一旦您单击一个按钮,字段中的文本就会发生变化但该事件不会被触发(并且它不会运行 alertTextInput() 方法),当您直接在文本字段下键入文本时,事件会按预期触发。
如何使用代码或使用更改文本并触发事件的方法手动激活事件?谢谢!
const changeTextButton = document.querySelector("#change-text");
const clearButton = document.querySelector("#clear");
const inputField = document.querySelector("#query");
changeTextButton.addEventListener("click", changeText);
clearButton.addEventListener("click", clear);
inputField.addEventListener("input", alertTextInput);
function changeText() {
inputField.value = "Demo Text!!";
inputField.dispatchEvent(new Event("input"))
}
function clear() {
inputField.value = "";
inputField.dispatchEvent(new Event("input"))
}
function alertTextInput() {
alert(inputField.value);
}
<input type=text id="query">
<button id="change-text">Change the text programmatically</button>
<button id="clear">Clear</button>
【问题讨论】:
-
你想改变什么文字?我很难理解你的问题
-
我假设您在通过
inputField.value = "Demo Text!!";更改文本后询问如何让alertTextInput()运行 - 不幸的是,这不被视为输入事件侦听器的事件。我相信你必须手动调用它。 -
这是另一个副本 - stackoverflow.com/questions/42427606/…
-
欢迎大家看下面的答案,从我的印象来看问题与上面的链接没有重复。
标签: javascript