如何使用jQuery禁用粘贴(Ctrl + V)?
如何禁用粘贴( Ctrl + V )选项使用jQuery在我的input文本字段之一?
这现在适用于IE浏览器的Chrome浏览器正常…我还没有testing其他浏览器
$(document).ready(function(){ $('#txtInput').bind("cut copy paste",function(e) { e.preventDefault(); }); });
编辑:这是近6年后,现在看这个我不会推荐这个解决scheme。 接受的答案肯定好多了。 去吧!
这似乎工作。
您可以使用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(); } }); });
更新:按键不会在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; };
在非angular度项目中,使用'onPaste'而不是'$ event'的'ng-paste'和'event'。
以下代码将禁用从整页中剪切,复制和粘贴。
$(document).ready(function () { $('body').bind('cut copy paste', function (e) { e.preventDefault(); }); });
完整的教程和工作演示可以从这里find – 禁用使用jQuery剪切,复制和粘贴
您可以捕捉关键事件:
function checkEventObj ( _event_ ){ // --- IE explorer if ( window.event ) return window.event; // --- Netscape and other explorers else return _event_; } document.keydown = function(_event) { var e = checkEventObject(_event); if( e.ctrlKey && (e.keyCode == 86) ) window.clipboardData.clearData(); }
没有testing,但可以帮助。
来自comentcamarche和Zakaria
$(document).ready(function(){ $('#txtInput').live("cut copy paste",function(e) { e.preventDefault(); }); });
在文本框现场活动剪切,复制,粘贴事件被阻止,它运作良好。