js操作模态框input赋值不能触发相应事件

JS操作模态框input赋值,不能触发input change keydown 事件,input输入框也不能获取焦点

用js赋值不会触发相关的事件,需要用创建事件对象后触发,前提是控件绑定过事件,这个需要浏览器开发工具来检查绑定了什么事件

<input type="text" id="t" />
<script>
    t.addEventListener('change', function () { alert(t.value) });

    t.value = '1111';//不会触发change事件

    function fireEvent(el) {
        const e = new Event('change');
        el.dispatchEvent(e);
    }

    //2s后手动触发事件
    setTimeout(function () {
        t.value = '222';
        fireEvent(t);//脚本触发事件
    }, 2000)
</script>