javascript - 如何在没有 jQuery 的情况下以编程方式触发 “input” 事件?

标签 javascript

我使用

输入上安装了一个事件处理程序
var element = document.getElementById('some-input');
element.addEventListener('input', function() {
    console.log('The value is now ' + element.value);
});

正如预期的那样,当我在文本字段中键入时会触发处理程序,但我还需要从我的代码中调用此处理程序。如何模拟 input 事件以便调用我的事件监听器?

最佳答案

使用纯 JavaScript 触发事件的正确方法是创建一个 Event 对象并分发它

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

或者,作为一个简单的单行代码:

element.dispatchEvent(new Event('input', {bubbles:true}));

FIDDLE

IE不支持,还是老办法

var event = document.createEvent('Event');
event.initEvent('input', true, true);

elem.dispatchEvent(event);

关于javascript - 如何在没有 jQuery 的情况下以编程方式触发 “input” 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35659430/

相关文章:

javascript - 为什么我的函数返回 unicode 替换字符

javascript - 奇数之和直到达到Javascript中的限制

javascript - 如何在 Javascript 中有效删除二维数组中的空列

javascript - NodeJS 和 Passport 注册不工作 - 没有错误

javascript - 如何将模糊函数传递并应用到父组件上的特定输入?

javascript - 创建带有格式化按钮的 html 字段并将结果存储在 mySQL 中

javascript - 在 JS 中将过滤器数组应用于数组的优雅方法

javascript - DataTable 在加载大量列时出错

javascript - 从字符串 mssqlsequelize 转换日期和/或时间时转换失败

javascript - 如何在javascript函数中将javascript变量传递给php