Отключить действие Копировать или Вставить для текстового поля?

У меня есть два текстовых поля, и я хочу, чтобы пользователь не копировал значение из первого (по электронной почте) текстового поля и вставлял его во второе (confirmEmail) текстовое поле.

Email: <input type="textbox" id="email"><br/>
Confirm Email:    <input type="textbox" id="confirmEmail">

У меня есть два решения:

  • Предотвратить действие копирования из текстового поля электронной почты или
  • Предотвратите действие вставки из текстового поля confirmEmail.

Любая идея о том, как это сделать?

http://jsfiddle.net/S22ew/

Ответы

Ответ 1

Проверьте этот скрипт fiddle

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

Вам нужно связать Что нужно делать при вырезании, скопировать пасту. Вы предотвращаете поведение по умолчанию в действии. Вы можете найти подробное объяснение здесь

Ответ 2

Используйте

oncopy = "return false" onpaste = "return false"

Email: <input type="textbox" id="email" oncopy="return false" onpaste="return false" ><br/>
Confirm Email:    <input type="textbox" id="confirmEmail" oncopy="return false" onpaste="return false">

http://jsfiddle.net/S22ew/4/

Ответ 3

Ниже приведен обновленный fiddle.

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

Это предотвратит вырезание скопированной копии в текстовом поле Подтверждение электронной почты.

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

Ответ 4

Попробуйте это

 $( "#email,#confirmEmail " ).on( "copy cut paste drop", function() {
                return false;
        });

Ответ 5

ondrop="return false;"
onpaste="return false;"

Используйте эти атрибуты в требуемом текстовом поле в HTML. Теперь функции перетаскивания и вставки отключены.

Ответ 6

ОБНОВЛЕНИЕ: принятый ответ обеспечивает решение, но .on() - метод, который должен использоваться с этого момента.

"Начиная с jQuery 3.0,.bind() устарел. Он был заменен методом .on() для присоединения обработчиков событий к документу начиная с jQuery 1.7, поэтому его использование уже не рекомендуется".

http://api.jquery.com/bind/

Ответ 7

Лучший способ сделать это - добавить атрибут данных в поле (текстовое поле), где вы хотите избежать вырезания, копирования и вставки.

Просто создайте метод для того же, который выглядит следующим образом:

function ignorePaste() {

$("[data-ignorepaste]").bind("cut copy paste", function (e) {
            e.preventDefault(); //prevent the default behaviour 
        });

};

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

Confirm Email: <input type="textbox" id= "confirmEmail" data-ignorepaste=""/>

Вызовите метод ignorePaste()

Таким образом, вы сможете использовать это во всем приложении, все, что вам нужно сделать, это просто добавить атрибут данных, где вы хотите игнорировать вырезанную копию вставки

https://jsfiddle.net/0ac6pkbf/21/

Ответ 8

Вы можете попробовать это:

   <input type="textbox" id="confirmEmail" onselectstart="return false" onpaste="return false;" oncopy="return false" oncut="return false" ondrag="return false" ondrop="return false" autocomplete="off">

Ответ 9

См. этот пример. Вам необходимо связать распространение ключа события

$(document).ready(function () {
    $('#confirmEmail').keydown(function (e) {
        if (e.ctrlKey && (e.keyCode == 88 || e.keyCode == 67 || e.keyCode == 86)) {
            return false;
        }
    });
});