关于用油猴js脚本模拟填写vue的v-model绑定的数据。

你好,
vue写的网页input大多应该都是用v-model绑定了值的吧,最近用油猴脚本操作网页实现自动化,遇到input框,直接用jq $('input').val(66),值输入了,但无效。jq模拟键盘输入。获取焦点,var e = jQuery.Event("keydown");//模拟一2113个键盘事件5261
e.keyCode = 13;//模拟按下一个删除键删除最后一个数
$("#id").tigger(e);//模拟按下回1653车
失去焦点,这样也不行。请问还有什么方法可以实现吗?
这个问题你解决了吗,我遇到这个问题卡了好久了

要知道input绑定什么事件,要触发指定的事件才行。使用jQuery trigger无效,使用原生js事件可以。示例如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~

img

<div id="app">
    <input type="text" v-model="test" id="x" v-on:input="hello" />
</div>
<script src="https://g.csdnimg.cn/??lib/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    new Vue({
        el: '#app',
        data: { test: '' },
        methods: {
            hello() {
                console.log(this.test)
            }
        }
    })
    /**
     * 触发指定事件
     * @param eventName:事件名称
     * @param targetElement:触发事件的对象
     */
    function fireEvent(eventName, targetElement) {
        if (document.createEvent) {
            const event = document.createEvent('HTMLEvents');
            event.initEvent(eventName, true, false);
            targetElement.dispatchEvent(event);
        } else if (document.createEventObject) {//IE
            targetElement.fireEvent('input');
        }
    }
    $('#x').val(123).trigger('input');//vue绑定了input事件,用jquery触发无效,未执行hello

    setTimeout(() => {
        fireEvent('input', x);//输出123
    }, 3000);

    
</script>

这个代码你需要网页加载完使用才有效,建议加上$(function(){ 你的js代码 })