如何用jQuery禁用粘贴(Ctrl + V)?

Mis*_*sam 68 javascript jquery copy-paste textinput

如何在我的一个输入文本字段中使用jQuery 禁用粘贴(Ctrl+ V)选项?

Mis*_*sam 169

这适用于IE FF Chrome正常...我还没有测试其他浏览器

$(document).ready(function(){
   $('#txtInput').on("cut copy paste",function(e) {
      e.preventDefault();
   });
});
Run Code Online (Sandbox Code Playgroud)

编辑:正如webeno所指出的那样,.bind()不推荐使用,因此建议使用.on().

  • $('#txtInput').bind("contextmenu",function(e){e.preventDefault();}); //这会禁用右键单击 (12认同)
  • 有意思,我不知道这些事件是否存在.我在浏览器怪异模式下找到了这个页面,它提供了有关这些事件的跨浏览器兼容性的信息:http://www.quirksmode.org/dom/events/cutcopypaste.html (3认同)

Dan*_*ane 21

编辑:差不多6年后,现在看着这个我不推荐这个解决方案.接受的答案肯定要好得多.去吧!


这似乎有效.

您可以使用jQuery 监听键盘事件,并防止事件完成,如果它是您正在寻找的键组合.注意,检查118和86(Vv)

这里的工作示例: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();
         }
    });
});
Run Code Online (Sandbox Code Playgroud)

更新:按键不会在IE中触发,而是使用keydown.


Ste*_*han 9

从JQuery 1.7开始,您可能希望使用on方法

$(function(){
    $(document).on("cut copy paste","#txtInput",function(e) {
        e.preventDefault();
    });
});
Run Code Online (Sandbox Code Playgroud)