Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to detect copy and paste in javascript?

I have two fields, one is emailid and another is password in my form. I want to prevent the user from pasting into those fields. They should be forced to enter manually, like Google Forms.

like image 913
StaticVariable Avatar asked May 31 '12 03:05

StaticVariable


People also ask

Can you copy and paste JavaScript?

JavaScript offers some built-in clipboard properties that allow us to copy/paste the text into the clipboard using a single button click. In JavaScript, the navigator. clipboard is used to get access to the clipboard while writeText() property is used to copy the text into the clipboard.


1 Answers

You could disable ctrl+v combination and right click as well.

for IE, you may tap into following event handlers:

onpaste="return false;" 
oncut="return false;" 
oncontextmenu="return false;" 
oncopy="return false;".

Here is a workaround for all browsers:

function noCTRL(e) {
      var code = (document.all) ? event.keyCode : e.which;
      var ctrl = (document.all) ? event.ctrlKey : e.modifiers & Event.CONTROL_MASK;
      var msg = "Sorry, this functionality is disabled.";
      if (document.all) {
        if (ctrl && code == 86) {
          //CTRL+V
          alert(msg);
          window.event.returnValue = false;
        } else if (ctrl && code == 67) { 
         //CTRL+C (Copy)
          alert(msg);
          window.event.returnValue = false;
        }
      } else {
        if (ctrl == 2) {
          //CTRL key
          alert(msg);
          return false;
        }
      }
    }

In HTML section, your fields would look like:

Email :<input name="email" type="text" value=""/><br/>
Password :<input name="password" type="password" value=""/><br/>
Confirm Email :<input name="email" type="text" value="" onkeydown="return noCTRL(event)"/>    
Confirm Password :<input name="password" type="password" value="" onkeydown="return noCTRL(event)"/>

I don't think user can copy password fields if input type is password

Hope this helps.

Note:

  1. Disabling JavaScript in browser will let users do whatever they want
  2. Always Keep this in mind: respect user's freedom.
like image 81
Alfred Avatar answered Oct 06 '22 02:10

Alfred