Отключить действие Копировать или Вставить для текстового поля?
У меня есть два текстовых поля, и я хочу, чтобы пользователь не копировал значение из первого (по электронной почте) текстового поля и вставлял его во второе (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;
}
});
});