Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在输入文本字段上以编程方式触发输入事件?_Javascript - Fatal编程技术网

Javascript 如何在输入文本字段上以编程方式触发输入事件?

Javascript 如何在输入文本字段上以编程方式触发输入事件?,javascript,Javascript,正如您在下面的代码部分中所看到的,一旦单击其中一个按钮,字段中的文本将发生更改,但事件不会被触发(并且不会运行alertTextInput()方法),当您直接在文本字段下键入文本时,事件将按预期触发 如何通过使用代码或使用更改文本并触发事件的方法手动激活事件?谢谢大家! constchangetextbutton=document.querySelector(“#changetext”); const clearButton=document.querySelector(“清除”); cons

正如您在下面的代码部分中所看到的,一旦单击其中一个按钮,字段中的文本将发生更改,但事件不会被触发(并且不会运行alertTextInput()方法),当您直接在文本字段下键入文本时,事件将按预期触发

如何通过使用代码或使用更改文本并触发事件的方法手动激活事件?谢谢大家!

constchangetextbutton=document.querySelector(“#changetext”);
const clearButton=document.querySelector(“清除”);
const inputField=document.querySelector(“#query”);
changeTextButton.addEventListener(“单击”,changeText);
clearButton.addEventListener(“单击”,清除);
addEventListener(“输入”,alertTextInput);
函数changeText(){
inputField.value=“演示文本!!”;
inputField.dispatchEvent(新事件(“输入”))
}
函数clear(){
inputField.value=“”;
inputField.dispatchEvent(新事件(“输入”))
}
函数alertTextInput(){
警报(inputField.value);
}

以编程方式更改文本

清除
尝试此操作以手动分派事件,请参阅:


如果我理解正确,您希望在单击“更改”按钮时更改输入文本并显示警报。由于changeText()函数只是更改文本,因此不应期望出现警报

只需将alertTextInput()函数添加到changeText()的底部即可

React期望听到
输入
事件

因此,在设置值后触发
输入
事件

最后的代码是:

var event = new Event('input', {
    'bubbles': true,
    'cancelable': true
});

inputElement.value = '0.2'
inputElement.dispatchEvent(event);

你想更改什么文本?我很难理解你的问题我想你是在问如何在你通过
inputField.value=“Demo text!!”更改文本后运行
alertTextInput()
-很遗憾,对于输入事件侦听器,这不被视为事件。我相信你必须手动调用它。可能重复:这是另一个重复-欢迎你看到下面的答案,根据我的印象,这个问题不是从上面的链接重复的。我更喜欢基于事件的解决方案
function changeText() {
  inputField.value = "Demo Text!!";
  alertTextInput();
}
var event = new Event('input', {
    'bubbles': true,
    'cancelable': true
});

inputElement.value = '0.2'
inputElement.dispatchEvent(event);