Как ограничить отправку формы в Тильде без выбора адреса из подсказок Дадаты
Многие владельцы сайтов на Tilda сталкиваются с ситуацией, когда пользователи игнорируют выпадающие подсказки сервиса DaData и вводят адрес вручную или отправляют мусор. Это приводит к невалидным заказам и потере времени. Разберём технические способы принудительной валидации поля «Адрес доставки» - от простого скрытого ID до проверки через API.
Почему пользователи не выбирают адрес из подсказок
Подсказки DaData работают корректно, но часть клиентов:
- использует автозаполнение браузера;
- не замечает выпадающий список;
- вводит адрес на слух (например, «дом 5, кв 3» без улицы);
- намеренно отправляет некорректные данные.
Чтобы исключить такие случаи, нужно внедрить дополнительную проверку на стороне клиента (JavaScript) и сервера.
Метод 1: Скрытое поле с уникальным идентификатором адреса
Самый надёжный способ - привязать выбор адреса к скрытому полю. При интеграции подсказок DaData в Tilda через Zero Block (HTML-код) добавьте:
<input type="hidden" id="address_id" name="address_id" value="">В обработчике события onSelect подсказок присваивайте этому полю уникальный идентификатор (например, код КЛАДР или ФИАС). Если поле остаётся пустым - форма не отправляется.
Пример кода для Tilda
var token = 'ВАШ_ТОКЕН_DADATA';
var type = 'address';
$('#delivery_address').suggestions({
token: token,
type: type,
onSelect: function(suggestion) {
$('#address_id').val(suggestion.data.fias_id);
$('#city_hidden').val(suggestion.data.city);
}
});
// Блокировка отправки
$('#my_form').on('submit', function(e) {
if ($('#address_id').val() === '') {
e.preventDefault();
alert('Пожалуйста, выберите адрес из подсказок');
}
});Метод 2: Проверка уровня города через DaData API
Если достаточно контролировать хотя бы город, можно реализовать валидацию по полю city из ответа DaData. При выборе адреса сохраняйте город в скрытое поле, а при отправке формы проверяйте его наличие.
В Tilda это делается через Zero Block или стандартную форму с добавлением кастомного JS через блок T123.
Метод 3: Использование готовых решений (Tilda + DaData)
Если вы не хотите писать код вручную, воспользуйтесь плагинами или готовыми сниппетами:
- Dadata Tilda Plugin - настройка через Zero Block с автоматической валидацией;
- Сервис Webflow или Tilda API - для отправки данных на свой бэкенд с проверкой.
Но помните: без скрытого поля любой пользователь может обойти проверку через консоль браузера.
Как защитить форму от обхода проверки
Хакеры или опытные пользователи могут открыть DevTools и удалить атрибут disabled у кнопки или изменить значение скрытого поля. Поэтому:
- всегда дублируйте валидацию на сервере (через API DaData);
- используйте капчу (Google reCAPTCHA v3) для дополнительной защиты;
- логируйте попытки отправки с пустыми скрытыми полями.
Пошаговая инструкция для Tilda
- Установите Zero Block и вставьте HTML-код поля ввода с подсказками DaData.
- Добавьте скрытое поле
address_id. - Пропишите JavaScript-обработчик на выбор адреса.
- Добавьте проверку на событие
submit. - Протестируйте форму в режиме предпросмотра.
После внедрения проверки процент «мусорных» заказов снизится до минимума, а менеджеры будут получать только корректные адреса доставки.