手动触发文本框 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)
若您觉得我的博文对您有帮助,欢迎点击下方按钮对我打赏

打赏

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章