Как отключить опцию Paste (Ctrl + V) с помощью jQuery в одном из полей ввода?
Как отключить Вставить (Ctrl + V) с помощью jQuery?
Ответ 1
Теперь это работает для IE FF Chrome правильно... Я не тестировал другие браузеры, хотя
$(document).ready(function(){
$('#txtInput').bind("cut copy paste",function(e) {
e.preventDefault();
});
});
Ответ 2
Редактировать: Это почти 6 лет спустя, глядя на это сейчас, я бы не рекомендовал это решение. Принятый ответ определенно намного лучше. Пойдите с этим!
Кажется, что это работает.
Вы можете прослушивать события клавиатуры с помощью jQuery и не допустить завершения события, если его ключевой комбо вы ищете. Обратите внимание: отметьте 118 и 86 (V и V)
Рабочий пример: http://jsfiddle.net/dannylane/9pRsx/4/
$(document).ready(function(){
$(document).keydown(function(event) {
if (event.ctrlKey==true && (event.which == '118' || event.which == '86')) {
alert('thou. shalt. not. PASTE!');
event.preventDefault();
}
});
});
Обновление: keypress не срабатывает в IE, вместо этого используйте keydown.
Ответ 3
Как и в JQuery 1.7, вы можете использовать вместо этого метод on
$(function(){
$(document).on("cut copy paste","#txtInput",function(e) {
e.preventDefault();
});
});
Ответ 4
jQuery('input.disablePaste').keydown(function(event) {
var forbiddenKeys = new Array('c', 'x', 'v');
var keyCode = (event.keyCode) ? event.keyCode : event.which;
var isCtrl;
isCtrl = event.ctrlKey
if (isCtrl) {
for (i = 0; i < forbiddenKeys.length; i++) {
if (forbiddenKeys[i] == String.fromCharCode(keyCode).toLowerCase()) {
return false;
}
}
}
return true;
});
Ответ 5
Я пробовал это в моем проекте Angular, и он отлично работал без jQuery.
<input type='text' ng-paste='preventPaste($event)'>
И в разделе script:
$scope.preventPaste = function(e){
e.preventDefault();
return false;
};
В проекте Angular используйте 'onPaste' вместо 'ng-paste' и 'event' instesd '$ event'.
Ответ 6
Следующий код отключит вырезание, копирование и вставка с полной страницы.
$(document).ready(function () {
$('body').bind('cut copy paste', function (e) {
e.preventDefault();
});
});
Полный учебник и рабочая демонстрация можно найти здесь - Отключить вырезать, скопировать и вставить с помощью jQuery
Ответ 7
Вы можете поймать ключевое событие:
function checkEventObj ( _event_ ){
// --- IE explorer
if ( window.event )
return window.event;
// --- Netscape and other explorers
else
return _event_;
}
document.keydown = function(_event) {
var e = checkEventObject(_event);
if( e.ctrlKey && (e.keyCode == 86) )
window.clipboardData.clearData();
}
Не проверено, но может помочь.
Источник comentcamarche и Zakaria
Ответ 8
$(document).ready(function(){
$('#txtInput').live("cut copy paste",function(e) {
e.preventDefault();
});
});
В текстовом поле вырезано живое событие, копирование, вставка события предотвращается и работает хорошо.