手动触发文本框 oninput 的方法

最近接到一个 chrome 插件需求,需要自动填充文本框,再进行提交。

看起来这个需求很简单,在实现过程中却发现了一个问题,通过 jQuery 填充了文本框,但提交的时候却并没有提交填充后的文本值。

原因估计是文本框 MVVM 双向绑定了原网页的某个变量,jQuery 的 DOM.val()方法并没能触发oninput事件,导致提交的变量值并没有变更成功


最后,用原生代码手动触发一次input事件,问题迎刃而解

let evt = document.createEvent('HTMLEvents')
evt.initEvent('input', true, true)
$('#InputField').val('hello').get(0).dispatchEvent(evt)
若您觉得我的博文对您有帮助,欢迎点击下方按钮对我打赏
打赏