Как запретить отправку формы нажатием Enter в Tilda
С помощью этой модификации можно запретить отправку стандартных и Zero-форм в Tilda при нажатии клавиши Enter, чтобы избежать случайных отправок при вводе данных. Модификацию можно подключить как для всех форм на странице, так и только для выбранных.
<!--TICODE--><!-- Библиотека модификаций для Тильда https://ticode.dev -->
<!--TCD0140--><script>
(function () {
var tcdBlockIds = '#rec855058583';
var tcSelectNoEnter = tcdBlockIds
.split(',')
.map(function (s) { return s.trim(); })
.filter(Boolean);
function ticodePreventEnterOnForm(form) {
form.addEventListener('keydown', function (e) {
var tiTag = e.target.tagName.toUpperCase();
var tiIsEnter = (e.key === 'Enter' || e.keyCode === 13);
if (tiTag === 'TEXTAREA') return;
if (tiIsEnter) {
e.preventDefault();
e.stopPropagation();
}
}, true);
}
function ticodeIsInTarget(form) {
if (tcSelectNoEnter.length === 0) return true;
return tcSelectNoEnter.some(function (tiSel) {
return form.closest(tiSel);
});
}
function ticodeBindForm(form) {
if (!form.dataset.noEnterBound && ticodeIsInTarget(form)) {
ticodePreventEnterOnForm(form);
form.dataset.noEnterBound = '1';
}
}
function ticodeAttachToForms() {
var tiScope = tcSelectNoEnter.length === 0
? [document]
: tcSelectNoEnter.map(function (tiSel) { return document.querySelector(tiSel); }).filter(Boolean);
tiScope.forEach(function (tiRoot) {
tiRoot.querySelectorAll('form').forEach(ticodeBindForm);
});
}
document.addEventListener('DOMContentLoaded', ticodeAttachToForms);
var tildatiObserver = new MutationObserver(function (tildatiMutations) {
tildatiMutations.forEach(function (tildatiMutation) {
tildatiMutation.addedNodes.forEach(function (tiNode) {
if (tiNode.nodeType !== 1) return;
if (tiNode.tagName === 'FORM') {
ticodeBindForm(tiNode);
}
if (tiNode.querySelectorAll) {
tiNode.querySelectorAll('form').forEach(ticodeBindForm);
}
});
});
});
tildatiObserver.observe(document.body, { childList: true, subtree: true });
})();
</script>
КОПИРОВАТЬ КОД
1. Создаем блок стандартной формы или форму в Zero Block. Копируем ид блока и вставляем в генератор в поле "id блоков форм". Если форм несколько, то указываем id через запятую. Например: #rec2015222333, #rec2015252421.
Модификация работает обычными формами и формами в Popup, слайдерах или табах.
2. Копируем готовый код и вставляем в HTML блок Т123. Блок с кодом размещаем в самом низу сайта.
Примечание: если оставить поле "id блоков форм" пустым, то скрипт подключится ко всем формам на странице. Это удобно если нужно запретить отправку кнопкой Enter во всех формах на сайте. Достаточно разместить скрипт в футере без указания id блоков.
Эту форму нельзя отправить при помощи Enter
Демо форма
Get a free lesson
Just type your contacts
It's totally free
Тестовая корзина
Тестовая корзина. Возможность оформления заказа отключена