Ошибки формы на AI-сайте: какие состояния нужны
Какие состояния нужны форме лендинга: ожидание, неверный ввод, отказ сервера, потерянный ответ и успех. Таблица поведения и тест приёмки.

Форма готова, когда человеку понятно, что происходит после неудачной отправки. Одной зелёной плашки недостаточно: сеть может исчезнуть, сервер ответить отказом, а заявка — сохраниться раньше, чем браузер получил подтверждение.
В AI-лендинге я бы принимал эти состояния по таблице до публикации. Так тексты и логика проверяются вместе. Общее «что-то пошло не так» удобно разработчику, но оставляет посетителю гадать, нужно ли заново заполнять поля и не получится ли дубль.
Карта состояния, причины и действия
| Состояние | Что знает система | Что сообщить человеку | Следующее действие |
|---|---|---|---|
| Неверный ввод | Понятно, какое правило нарушено | Какое поле и как исправить | Исправить без потери остальных полей |
| Отправка | Запрос выполняется | Идёт отправка | Дождаться; повтор не создаёт новый запрос |
| Явный отказ | Известно, что запись не создана | Действие не завершено, доступен повтор | Повторить по предусмотренному пути |
| Ответ потерян | Результат создания неизвестен | Подтверждение пока не получено | Проверить статус или безопасно повторить |
| Успех | Достигнут согласованный этап | Что именно принято и что будет дальше | Не отправлять заново без новой задачи |
Таблица не устанавливает универсальные тексты для всех продуктов. Если сервер только принял задачу в очередь, сообщение «менеджер получил заявку» может опережать факт. Договоритесь, какой этап считается успехом и где подтверждается дальнейшая доставка.
Ошибку ввода привяжите к полю
Вместо «некорректные данные» покажите, что нужно изменить: заполнить контакт, выбрать значение, исправить формат. Сообщение не должно зависеть только от цвета. W3C в пояснении Error Identification указывает на текстовое описание автоматически обнаруженной ошибки и обозначение затронутого элемента.
Проверьте, что описание действительно связано с нужным полем и остаётся доступным после перехода клавиатурой. Сохраните правильные значения соседних полей. Требование заново ввести весь текст после одной опечатки особенно мешает на телефоне.
Не делайте правила строже, чем требует задача. Если поле просит «контакт», а принимает только телефон одного формата, это нужно объяснить до отправки или разделить способы связи. Клиентская проверка помогает человеку, серверная всё равно должна проверять данные независимо.
Ожидание не должно быть бесконечным
Пока запрос выполняется, покажите понятный статус и защитите форму от случайной повторной отправки. Если ожидание закончилось тайм-аутом, не объявляйте автоматически, что сервер ничего не получил. Между записью данных и доставкой ответа есть промежуток, где браузер уже потерял связь, а операция завершилась.
В этом состоянии нужен согласованный способ проверки статуса либо повтор с защитой на сервере. Разбор двойной заявки показывает, почему одного отключения кнопки недостаточно. Возможность повторить действие должна сохранять ту же логическую операцию, когда результат первой ещё неизвестен.
Внутреннюю причину оставьте в диагностике
Посетителю не нужны имена секретных переменных, ответ провайдера целиком или стек ошибки. Ему нужно знать, завершилось ли действие и что сделать дальше. Подробности сохраняйте в защищённой диагностике с техническим идентификатором, который можно передать поддержке.
Разделите сообщения об исправимом вводе и временной недоступности. «Проверьте телефон» при отказе сервера заставит человека исправлять правильные данные. «Попробуйте позже» при пустом обязательном поле тоже не помогает. Текст ошибки должен соответствовать реально известной причине.
Как проверить все переходы
- Проверьте пустую форму, неверный формат и корректный ввод.
- В безопасной тестовой среде замедлите ответ и попробуйте повторный клик.
- Смоделируйте явный отказ обработчика и отдельно потерю ответа после создания записи.
- Проверьте сохранение полей, сообщения и путь повтора.
- Найдите конечную запись и сопоставьте результат с тем, что сообщил интерфейс.
Повторите маршрут без мыши и на телефоне. Если ошибка проявляется только на рабочем адресе, переходите к карте различий окружений. Приёмка заканчивается перечнем реально пройденных состояний. Названия этих состояний в макете ещё не доказывают, что приложение умеет в них переходить.