2013-03-21 5 views
5

jqueryを使用してテキストボックスにコピー貼りを防止する必要があります。 これを実装する方法は?jqueryを使用してコピー貼り付けを防止する

<table> 
    <tr> 
    <h:inputlabel value="Actual"></h:inputlabel> 
     <td> 
     <h:inputtext id="Actual" styleClass="input-tex" value="#bean.customer"></h:inputtext> 
     <td> 
    </tr> 
<table> 
+3

だけすることができますように、これは、「セキュリティ対策」として意図されていないことを確認してください簡単にJavaスクリプト、ソースコードをチェックし、screenshotingや他の多くを無効にすることで、それをバイパスします。 – Moak

+0

がpasteイベントに追加されました。e.preventDefault()メソッド –

答えて

11

ここに行くために:Disable Cut, Copy and Paste function for textbox using jQuery

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

注:Operaはそれが最もおよび '公式' の方法だバージョン12.10

+0

これらのイベントがFF + GCでサポートされていることがわかりました。ただし、これらはOperaではサポートされていません(jQueryで変更することはできません)。 –

+0

はい、Operaでも動作します。Operaでこれを試すことができます。[Working Demo](http://jsbin.com/uyuzo)と動作します。 –

+0

いつですか? [dotorro.com](http://help.dottoro.com/ljuimtmq.php)はそうしないと主張する。 –

1

前に、カットをサポートしてコピー&ペーストイベントませんでしたJqueryでやってください。

$(document).ready(function() { 
    var ambit = $(document); 

    // Disable Cut + Copy + Paste (input) 
    ambit.on('copy paste cut', function (e) { 
     e.preventDefault(); //disable cut,copy,paste 
     return false; 
    }); 
}); 

しかし、それは動作しますが、一部のOperaバージョンでは読み込みがサポートされていません。入力の外にあるものはすべてコピーすることができます。コンテキストメニューについて

$(document).ready(function() { 
    var ambit = $(document); 

    // Disable Cut + Copy + Paste (input) 
    ambit.on('copy paste cut', function (e) { 
     e.preventDefault(); //disable cut,copy,paste 
     return false; 
    }); 

    // Disable Cut + Copy + Paste and Browser Admin Tools (all document) 
    ambit.keydown(function (e) { 
     var forbiddenCtrlKeys = new Array('c', 'x', 'v', 'ins', 'u'); 
     var forbiddenShiftKeys = new Array('del', 'ins', 'f2', 'f4', 'f7'); 
     var forbiddenCtrlShiftKeys = new Array('k', 'i', 'm', 's', 'j'); 
     var keyCode = (e.keyCode) ? e.keyCode : e.which; 

     var isCtrl, isShift; 
     isCtrl = e.ctrlKey; 
     isShift = e.ctrlShift; 

     string = getKeyCodeString(keyCode); 

     if (string == 'f12') 
     { 
      e.preventDefault(); 
      return false; 
     } 

     if (isCtrl && !isShift) { 
      for (i = 0; i < forbiddenCtrlKeys.length; i++) { 
       if (forbiddenCtrlKeys[i] == string) { 
        e.preventDefault(); 
        return false; 
       } 
      } 
     } 

     if (!isCtrl && isShift) { 
      for (i = 0; i < forbiddenShiftKeys.length; i++) { 
       if (forbiddenShiftKeys[i] == string) { 
        e.preventDefault(); 
        return false; 
       } 
      } 
     } 

     if (isCtrl && isShift) { 
      for (i = 0; i < forbiddenCtrlShiftKeys.length; i++) { 
       if (forbiddenCtrlShiftKeys[i] == string) { 
        e.preventDefault(); 
        return false; 
       } 
      } 
     } 

     return true; 
    }); 

    var getKeyCodeString = function(keyCode) 
    { 
     var string; 
     switch (keyCode) { 
      case 45: 
       string = 'ins'; break; 
      case 46: 
       string = 'del'; break; 
      case 113: 
       string = 'f2'; break; 
      case 115: 
       string = 'f4'; break; 
      case 118: 
       string = 'f7'; break; 
      case 123: 
       string = 'f12'; break; 
      default: 
       string = String.fromCharCode(keyCode); 
       break; 
     } 
     return string.toLowerCase(); 
    } 
}); 

そして、何:

あなたは完全に無効にしたいものであれば、paranoic mode: on、あなたがこの方法を使用することができますか?

$(document).ready(function() { 
    var ambit = $(document); 

    // Disable Contextual Menu 
    ambit.on('contextmenu', function (e) { 
     e.preventDefault(); 
     return false; 
    }); 

モバイルについてはどうですか?

$(document).ready(function() { 
    var ambit = $(document); 

    // Disable Tap and Hold (jQuery Mobile) 
    ambit.on('taphold', function (e) { 
     e.preventDefault(); 
     return false; 
    }); 
}); 

希望します。訂正と改善は歓迎です!

+0

もう '.bind()'を使う人は... – Shikkediel

+1

@Shikkediel ...あなたは正しいです! .bind()は推奨されていません。私はそれを.on()で更新します – Equiman

0

Jquery 1.9 onward liveイベントはサポートされていないため、同じ目的で "on"を使用できます。

$('#Actual').on("cut copy paste", function (e) { 
     e.preventDefault(); 
    }); 
関連する問題