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