有可能以某种方式将javascript(jQuery是最好的)事件绑定到"更改"表单输入值吗?
我知道.change()方法,但是在你(光标)离开输入字段之前它不会触发.我也考虑过使用.keyup()方法,但它也会对箭头键等作出反应.
我只需要在输入中的文本每次更改时触发一个动作,即使它只有一个字母更改.
我有一个input与google autoComplete连接。
当用户上下移动时,seachResults输入的值会通过 JavaScript 动态更改。
我想在任何给定时间捕获输入中的值。
我试过onChange和onInput,但由于没有事件被解雇,并value在中DOM Node没有得到一组-没有更新。
您如何检测input通过 动态更新的更改JavaScript?
正如您在下面的代码部分中看到的,当您单击一个按钮时,字段中的文本会发生更改但事件不会被触发(并且它不会运行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);
}Run Code Online (Sandbox Code Playgroud)
<input type=text id="query">
<button id="change-text">Change the text programmatically</button>
<button id="clear">Clear</button>Run Code Online (Sandbox Code Playgroud)