直接设置input的value是不行的,因为这个时候没有触发vue里的input事件,vue里绑定变量的值没变
为什么?直接修改value应该是会触发@input的才对啊?
inputEl.value = 'xxx'
解决方案是:需要手动dispath input
let ev = new Event('input');
inputEl.dispatchEvent(ev)
示例:
(function() {
'use strict';
// Your code here...
window.onload = function(){
console.log('loaded')
const usernameEl = document.querySelector('#loginForm > div:nth-child(1) > div > div > input');
const passwordEl = document.querySelector('#loginForm > div:nth-child(2) > div > div > input');
let ev = new Event('input');
let ev2 = new Event('input');
setTimeout(()=>{
usernameEl && (usernameEl.value = 'admin') && usernameEl.dispatchEvent(ev)
setTimeout(()=>{
passwordEl && (passwordEl.value = 'test') && passwordEl.dispatchEvent(ev2)
},100)
}, 100)
}
})();
原因待分析。。
标签:vue,登录,value,usernameEl,passwordEl,input,div,ev,油猴 From: https://www.cnblogs.com/duanlvxin/p/18396141