Как обнаружить, скопировать и вставить в JavaScript?

у меня есть два поля, одно из них - emailid, а другое - пароль в моей форме. Я хочу обнаружить, что когда пользователь повторно вводит адрес электронной почты и пароль, он не может скопировать вышеупомянутое. он должен написать снова вручную. Так же, как формы Google

 StaticVariable31 мая 2012 г., 06:07
но я хочу добавить больше функциональности в мою форму, это копирование может создать проблему для пользователя в случае пароля.
 Christian Varga31 мая 2012 г., 06:03
Если кто-то хочет скопировать и вставить, это его решение, а не ваше. Предотвращение поведения ОС / браузера по умолчаниюnever приемлемое решение.
 Romil Kumar Jain31 мая 2012 г., 06:06
 jpaugh31 мая 2012 г., 06:06
Это было сделано ранее, но это плохая идея, особенно для электронных писем и другого простого текста: это более неудобно, чем время от времени вводить неправильный адрес электронной почты.
 Christian Varga31 мая 2012 г., 06:13
Опять же, если вы добавляете пользовательские функции и копирование / вставка может вызвать проблему, этоyour проблема, а не пользователи. Никогда не пытайтесь решить свою проблему, ставя в невыгодное положение пользователя.

Ответы на вопрос(1)

Решение Вопроса

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

для IE вы можете использовать следующие обработчики событий:

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

Вот обходной путь для всех браузеров:

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

В разделе HTML ваши поля будут выглядеть так:

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)"/>

Я не думаю, что пользователь может скопировать поля пароля, если тип вводаpassword

Надеюсь это поможет.

Note:

Disabling JavaScript in browser will let users do whatever they want Always Keep this in mind: respect user's freedom.
 31 мая 2012 г., 06:42
Да, это @DA .....;)
 31 мая 2012 г., 06:40
Выcould отключить их. Я бы не сказал одинshould отключить их.
 11 нояб. 2014 г., 14:54
@TOBlender, но он не имеет дело с jQuery в этой ситуации ..
 10 нояб. 2014 г., 19:10
Это не работает для меня в OSX. Клавиша ctrl связана с «91»; например. Если у вас есть доступ к «jquery» как библиотека проверить этот пост:stackoverflow.com/questions/686995/catch-paste-input
 12 нояб. 2014 г., 17:26
@ Blasteralfred & # x3A8; да, я знаю, но это первый результат поиска при вставке в javascript, просто давая людям путь к другому решению.

Ваш ответ на вопрос