82 votes

Comment faire pour désactiver les touches Ctrl+V (Coller) avec jQuery

Comment puis-je désactiver Ctrl+V (Coller) option à l'aide de jQuery dans un de mes champs de saisie de texte....

197voto

Misam Points 2132

Cela fonctionne à présent pour IE, FF, Chrome correctement..je n'ai pas testé pour les autres navigateurs bien

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

21voto

DannyLane Points 1690

Cela semble fonctionner ok.

Vous pouvez écouter les événements de clavier avec jQuery et empêcher l'événement de se terminer si c'est la combinaison de touche que vous recherchez. Remarque, vérifiez 118 et 86 ('V' et 'v')

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

Mise à jour: pression de touche n'a pas de feu dans IE, utilisez keydown à la place.

13voto

steve Points 407

Comme de JQuery 1.7 vous pouvez utiliser la méthode de la place

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

4voto

hawx Points 312
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;
});

4voto

Abhishek Points 171

J'ai essayé dans mon Angulaire du projet et il a bien fonctionné sans jQuery.

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

Et dans la partie de script:

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

Non angulaire du projet, l'utilisation de 'onPaste" au lieu de "ng-coller" et "événement" instesd de '$event'.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X