Пошаговое руководство

Состояния формы: ожидание, успех и ошибка

Покажите ожидание запроса, сохраните ввод при ошибке и подтверждайте приём только по явному результату endpoint.

С чего начать

Свяжите сообщения формы с реальным состоянием запроса: ожидание, отправка, успех или ошибка.

Открыть пример состояний

Интерфейс формы должен объяснять, происходит ли отправка и можно ли повторить действие. Таймер, анимация кнопки или отсутствие исключения в коде не доказывают приём данных.

Четыре состояния

Готова: поля доступны. Отправляется: повторное нажатие отключено, есть текст ожидания. Принята: endpoint подтвердил результат по контракту. Ошибка: ввод сохранён, понятно, что делать дальше.

export async function runSubmission(send, ui) {
  ui.setState('sending');
  try {
    await send(); // send обязан отклонить неподтверждённый приём
    ui.setState('accepted');
    ui.reset();
  } catch {
    ui.setState('error'); // Не очищаем введённые значения
  } finally {
    ui.setBusy(false);
  }
}

Понятные сообщения

При ошибке поля укажите поле и ожидаемое исправление. При сетевом сбое скажите, что результат не подтверждён. Не обещайте «ничего не отправлено»: сервер мог сохранить запрос до обрыва связи.

Для доступности используйте спокойное сообщение role=status, а ошибки связывайте с полями. Перевод фокуса на первую ошибку помогает, если не разрушает привычный порядок чтения.

Как проверить

Подставьте тестовые send, которые успешно завершаются, отклоняются и зависают до отмены. Убедитесь, что reset вызывается только в первом случае, busy снимается после завершения и ввод остаётся после отказа.

Сообщение «Поля заполнены корректно» относится к валидации. Состояние принятой заявки связывайте с подтверждённым ответом endpoint.

Источники и дата проверки

Редакционная сверка: 2026-10-27. Учитывайте версию инструментов в своём проекте.

Обновлено

Следующий шаг

Продолжите подключение

Начните с формы

Ваш сайт уже есть.
Подключим форму.

Откройте личный кабинет, затем передайте агенту промпт подключения.

Подключить форму