Javascript如何在粘贴事件处理程序中触发更改或输入事件

javascript how to fire change or input event in paste event handler

本文关键字:入事件 输入 程序 事件处理 Javascript      更新时间:2023-09-26

我在文档对象上覆盖粘贴事件,现在我想在paste事件处理程序中触发onchange, oninput和其他输入事件。

document.addEventListener('paste', function (e) {
    e.preventDefault();
    var copiedText = e.clipboardData.getData("text/plain");
    if (e.srcElement.type === 'text' || e.srcElement.type === 'textarea') {
        var startPosition = e.srcElement.selectionStart;
        var endPosition = e.srcElement.selectionEnd;
        var len = e.srcElement.value.length;
        var sel = e.srcElement.value.substring(startPosition, endPosition);
        e.srcElement.value = e.srcElement.value.substring(0, startPosition) + copiedText +
            e.srcElement.value.substring(endPosition, len);
    }

    $(e.srcElement).trigger("change");
    $(e.srcElement).trigger("input");
    $(e.srcElement).trigger("propertychange");

});

如何为输入元素触发change, inputpropertychange事件?

这部分代码不能工作。

    $(e.srcElement).trigger("change");
    $(e.srcElement).trigger("input");
    $(e.srcElement).trigger("propertychange");

$(e.srcElement).change();将触发更改事件及其处理程序,但不确定inputpropertychange