js模擬鍵盤給input框輸入值,並觸發回車事件


參考: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 這篇文章驗證了也未生效

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM