robinunix

参考: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 这篇文章验证了也未生效

 

分类:

技术点:

相关文章:

  • 2021-09-17
  • 2021-12-09
  • 2021-09-17
  • 2021-09-17
  • 2021-10-19
  • 2021-09-17
  • 2021-12-09
  • 2021-10-22
猜你喜欢
  • 2021-09-17
  • 2021-12-09
  • 2021-11-27
  • 2021-09-17
  • 2021-10-07
  • 2021-12-26
  • 2021-11-19
相关资源
相似解决方案