Скрипт запрета вставки любого контента в INPUT поля

Вставляете данный код в HEAD или в GTM и у вас отарабатывает запрет вставки любых текстов и номеров телефонов по автомату в поля вводя на сайте. Протестировано на Tilda - работает.

На странице запрещается в INPUT поля вставлять любой текст через Ctrl+V, Cmd+V и через ПКМ.

<script>
document.addEventListener('DOMContentLoaded', function() {
// Функция для добавления обработчиков к полям
function addInputEventHandlers(input) {
console.log('Добавлены обработчики для элемента:', input);

// Блокировка вставки через событие paste
input.addEventListener('paste', function(e) {
console.log('Попытка вставки текста (paste) заблокирована');
e.preventDefault();
});

// Блокировка ввода через перетаскивание текста
input.addEventListener('drop', function(e) {
console.log('Попытка вставки текста через перетаскивание (drop) заблокирована');
e.preventDefault();
});

// Блокировка вставки через контекстное меню
input.addEventListener('contextmenu', function(e) {
console.log('Попытка открытия контекстного меню заблокирована');
e.preventDefault();
});

// Блокировка вставки через перетаскивание текста (альтернативный способ)
input.addEventListener('dragover', function(e) {
console.log('Попытка перетаскивания текста (dragover) заблокирована');
e.preventDefault();
});
input.addEventListener('dragenter', function(e) {
console.log('Попытка перетаскивания текста (dragenter) заблокирована');
e.preventDefault();
});

// Блокировка вставки через сочетания клавиш (Ctrl+V, Cmd+V)
input.addEventListener('keydown', function(e) {
if ((e.ctrlKey || e.metaKey) && (e.key === 'v' || e.key === 'V')) {
console.log('Попытка вставки через сочетание клавиш (Ctrl+V, Cmd+V) заблокирована');
e.preventDefault();
}
});

// Блокировка вставки через средний клик мыши
input.addEventListener('mousedown', function(e) {
if (e.button === 1) {
console.log('Попытка вставки через средний клик мыши заблокирована');
e.preventDefault();
}
});
}

// Установка обработчиков для уже существующих полей
document.querySelectorAll('input, textarea').forEach(function(input) {
addInputEventHandlers(input);
});

// Отслеживание изменений в DOM для новых элементов
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
mutation.addedNodes.forEach(function(node) {
if (node.tagName === 'INPUT' || node.tagName === 'TEXTAREA') {
addInputEventHandlers(node);
}

// Также обработаем случаи, когда новые элементы содержат вложенные input или textarea
if (node.nodeType === Node.ELEMENT_NODE) {
node.querySelectorAll('input, textarea').forEach(function(input) {
addInputEventHandlers(input);
});
}
});
});
});

observer.observe(document.body, { childList: true, subtree: true });
});
</script>