js模拟键盘给input框输入值,并触发回车事件

您所在的位置:网站首页 js如何输入数字 js模拟键盘给input框输入值,并触发回车事件

js模拟键盘给input框输入值,并触发回车事件

2024-02-01 15:39| 来源: 网络整理| 查看: 265

参考:https://segmentfault.com/a/1190000020892430

使用js模拟用户输入数据,改变input的value值,在提交的时候无效果,在一番寻找下,原来就因为没有触发绑定的input事件,使用原生js代码完美解决

let t=document.getElementsByClassName('c_l_area c_a_n')[0]; let evt = document.createEvent('HTMLEvents'); evt.initEvent('input', true, true); t.value='setValue'; t.dispatchEvent(evt)

 

仅模拟回车事件,参考:https://juejin.im/post/6844904128305430541

未生效方法:https://blog.csdn.net/sbin456/article/details/78901400

参考:

var evt = $.Event('keydown', {keyCode: 13}); $(document).trigger(evt);

正确做法

// 设置发送信息 var inpEle = window.frames['chat'].document.getElementById('_MEIQIA_INPUT') // inpEle.value = '测试信息' //仅仅是模拟回车,则不需要这样,这样给input框设置值也是不生效的,正确给input设置值的方式参考上面的 // 模拟回车 var event = document.createEvent('Event') event.initEvent('keydown', true, false) //注意这块触发的是keydown事件,在awx的ui源码中bind监控的是keypress事件,所以这块要改成keypress event = Object.assign(event, { ctrlKey: false, metaKey: false, altKey: false, which: 13, keyCode: 13, key: 'Enter', code: 'Enter' }) inpEle.focus() inpEle.dispatchEvent(event)

  

https://www.cnblogs.com/gisblogs/p/5821665.html 这篇文章验证了也未生效

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3