如何在我的输入文本字段之一中使用 jQuery禁用粘贴 ( Ctrl+ V) 选项?
如何使用 jQuery 禁用粘贴 (Ctrl+V)?
IT技术
javascript
jquery
copy-paste
textinput
2021-02-21 17:08:20
6个回答
这现在适用于 IE FF Chrome...不过我还没有测试其他浏览器
$(document).ready(function(){
$('#txtInput').on("cut copy paste",function(e) {
e.preventDefault();
});
});
编辑:正如webeno所指出的,.bind()
已弃用,因此建议.on()
改用。
编辑:差不多 6 年后,现在看这个我不推荐这个解决方案。接受的答案肯定要好得多。去吧!
这似乎有效。
您可以使用 jQuery侦听键盘事件,如果它是您正在寻找的组合键,则可以防止该事件完成。注意,检查 118 和 86(V和v)
这里的工作示例:http : //jsfiddle.net/dannylane/9pRsx/4/
$(document).ready(function(){
$(document).keydown(function(event) {
if (event.ctrlKey==true && (event.which == '118' || event.which == '86')) {
alert('thou. shalt. not. PASTE!');
event.preventDefault();
}
});
});
更新:keypress 不会在 IE 中触发,请改用 keydown。
从 JQuery 1.7 开始,您可能希望改用 on 方法
$(function(){
$(document).on("cut copy paste","#txtInput",function(e) {
e.preventDefault();
});
});
jQuery('input.disablePaste').keydown(function(event) {
var forbiddenKeys = new Array('c', 'x', 'v');
var keyCode = (event.keyCode) ? event.keyCode : event.which;
var isCtrl;
isCtrl = event.ctrlKey
if (isCtrl) {
for (i = 0; i < forbiddenKeys.length; i++) {
if (forbiddenKeys[i] == String.fromCharCode(keyCode).toLowerCase()) {
return false;
}
}
}
return true;
});
我在我的 Angular 项目中尝试过这个,它在没有 jQuery 的情况下运行良好。
<input type='text' ng-paste='preventPaste($event)'>
在脚本部分:
$scope.preventPaste = function(e){
e.preventDefault();
return false;
};
在非角度项目中,使用 'onPaste' 而不是 'ng-paste' 和 'event' instesd of '$event'。