javascript - 如何使用 JQuery 在 Android 浏览器中禁用 'Paste'?

标签 javascript jquery android-browser

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

$('#no_paste').bind("paste", function(e) {                
        e.preventDefault();
});

这是 fiddle

最佳答案

我已经在 Galaxy SIII 上测试过了,Android 浏览器似乎没有发送 粘贴 事件。但是,它仍然会在粘贴内容后发送 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());
});

你会发现 JSFiddle here .

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

关于javascript - 如何使用 JQuery 在 Android 浏览器中禁用 'Paste'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18327129/

相关文章:

html - Android 浏览器中带有图像背景的链接

javascript - 使用 n :m related objects 上的关联对错误进行后续处理

Javascript 使用正则表达式替换

jquery指定css框

jquery - 输入值属性中的ajax响应

javascript - 使用 CSS 的绝对大小

android - 使用 HTML5 Canvas 和 KineticJS 在 Android Webview 上平移、缩放性能不佳

javascript - 为什么计算属性会返回未定义?

javascript - 我正在使用 create-react-app,我需要在没有服务器的情况下直接在浏览器中打开 build/index.html

javascript - 使用 BufferedImage.getSubImage() 调整图像大小