我有一个输入字段,我不希望用户在其中粘贴任何值。我正在使用以下 jQuery 代码,它在桌面浏览器和 iPhone Safari 上运行良好。问题是它不适用于Android浏览器。
$('#no_paste').bind("paste", function(e) {
e.preventDefault();
});
这是小提琴
我有一个输入字段,我不希望用户在其中粘贴任何值。我正在使用以下 jQuery 代码,它在桌面浏览器和 iPhone Safari 上运行良好。问题是它不适用于Android浏览器。
$('#no_paste').bind("paste", function(e) {
e.preventDefault();
});
这是小提琴
我已经在 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());
});
你会在这里找到 JSFiddle 。
请注意,这也会阻止自动完成和所有其他以类似方式工作的奇怪输入技术(我不知道)。