如何使用JQuery在Android浏览器中禁用"粘贴"?

Cal*_*ebC 5 javascript jquery android-browser

我有一个输入字段,我不希望用户粘贴其中的任何值.我使用以下jQuery代码,它在桌面浏览器和iPhone Safari上运行良好.问题是它不适用于Android浏览器.

$('#no_paste').bind("paste", function(e) {                
        e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

这是小提琴

Kon*_*nel 1

我已经在 Galaxy SIII 上对此进行了测试,Android 浏览器似乎没有发送该 paste事件。但是,input粘贴某些内容后它仍然会发送事件。

如果用户在字段中输入内容,他将为input每个字母触发一个事件。但是,如果他正在粘贴,则input对于粘贴的整个字符串,事件只会触发一次。基于这一观察,我们可以像这样阻止粘贴:

$('#ie').bind("input", function() {
    var previousValue = $(this).data('old_value') || '',
        newValue = $(this).val();

    if((newValue.length - previousValue.length) > 1) {
        $(this).val(previousValue);
    }

    $(this).data('old_value', $(this).val());
});
Run Code Online (Sandbox Code Playgroud)

您将在这里找到 JSFiddle 。

请注意,这也会阻止自动完成和所有其他以类似方式工作的奇怪输入技术(我不知道任何)。