keydown不能捕获由按住复制操作(Ctrl-V)更改的文本

keydown doesn't catch text-changed by hold-up copy action (Ctrl-V)

本文关键字:Ctrl-V 文本 操作 复制 不能 keydown      更新时间:2023-09-26

我有一个文本输入。我想把它的字符数限制在300。我在上面捕捉keydown事件。但是如果用户将一些文本复制到剪贴板中,然后通过按住Ctrl-V(请注意Ctrl-V是按住的,而不是释放的)将其粘贴到文本输入中,则文本被更改,但我不能应用限制,直到Ctrl-V被释放尽管我们已经尝试了许多方法:onkeydown, onkeypress, onkeyup, onchange。有人提出解决方案吗?谢谢大家,祝大家工作愉快。

你可以试试这个(适当地改变你的选择器):

//Restrict text while pasting
$("#myinput").bind('paste', function () {
    var input = $(this);
    var maxLength = input.attr("maxLength");
    setTimeout(function () {
        input.val(input.val().substring(0, maxLength));
    }, 100);
});
//Restrict text while typing
$("#myinput").live("keypress", function () {
    var maxLength = $(this).attr("maxLength");
    return $(this).val().length <= maxLength - 1;
});