pegar inspeccionar evitar elemento deshabilitar derecho copiar contextual como clic bloquear javascript jquery copy-paste textinput

javascript - inspeccionar - Cómo deshabilitar Pegar(Ctrl+V) con jQuery?



deshabilitar menu contextual javascript (10)

A partir de JQuery 1.7, es posible que desee utilizar el método on

$(function(){ $(document).on("cut copy paste","#txtInput",function(e) { e.preventDefault(); }); });

¿Cómo puedo desactivar la opción Pegar ( Ctrl + V ) usando jQuery en uno de mis campos de texto de entrada?


Editar: Son casi 6 años después, mirándolo ahora, no recomendaría esta solución. La respuesta aceptada es definitivamente mucho mejor. ¡Ve con eso!

Esto parece funcionar

Puede escuchar eventos de teclado con jQuery y evitar que el evento se complete si es la combinación de teclas que está buscando. Nota, compruebe 118 y 86 ( V y v )

Ejemplo de trabajo aquí: 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(); } }); });

Actualización: la pulsación de tecla no se activa en IE, use la tecla de configuración en su lugar.


El siguiente código desactivará cortar, copiar y pegar desde la página completa.

$(document).ready(function () { $(''body'').bind(''cut copy paste'', function (e) { e.preventDefault(); }); });

El tutorial completo y la demostración operativa se pueden encontrar desde aquí - Deshabilitar cortar, copiar y pegar usando jQuery


Esto ahora funciona para IE FF Chrome correctamente ... No he probado otros navegadores aunque

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

Editar: como se señala por webeno , .bind() está en desuso, por lo tanto, se recomienda utilizar .on() lugar.


He probado el problema en el navegador Chrome y funciona para mí. A continuación, se muestra una solución para evitar el código de pegado en su cuadro de texto y también para evitar el clic derecho.

$(".element-container").find(''input[type="text"]'').live("contextmenu paste", function (e) { e.preventDefault(); });


Intenté esto en mi proyecto Angular y funcionó bien sin jQuery.

<input type=''text'' ng-paste=''preventPaste($event)''>

Y en la parte del script:

$scope.preventPaste = function(e){ e.preventDefault(); return false; };

En proyectos no angulares, use ''onPaste'' en lugar de ''ng-paste'' y ''event'' instesd de ''$ event''.


Puedes ver el evento clave:

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(); }

No probado, pero podría ayudar.

Fuente de comentcamarche y Zakaria


$(document).ready(function(){ $(''input'').on("cut copy paste",function(e) { e.preventDefault(); }); });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" />


$(document).ready(function(){ $(''#txtInput'').live("cut copy paste",function(e) { e.preventDefault(); }); });

En el evento textbox live, se evita el evento de cortar, copiar y pegar, y funciona bien.


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; });