Запретить повторную отправку формы

Рейтинг: 0Ответов: 2Опубликовано: 20.11.2014

На странице имеется форма добавления информации о себе, которая отправляется на сервер Ajax'м. При успехе на страницу возвращается alert уведомление. Если нажать снова кнопку "Отправить", эта форма повторно добавится в БД и так далее. Что можно в этом случае сделать?

Ответы

▲ 1Принят

От хороших идей к худшим:

  • скрыть форму;
  • выполнить reset для формы;
  • установить disabled = true для кнопки type="send" после отправки, и в случае ошибки disabled = false;
  • установить disabled = true для кнопки type="send" после успешного получения ответа;
  • проверять дублирование данных.

Но идеально будет дисаблить кнопку после нажатия, если возникнит ошибка раздисаблить, если успешно, скрыть форму и показать типа "спасибо" или что вы там в алерте выводите.

▲ 2

На выбор:

  1. После нажатия на кнопку "отправить" блокировать ее до получения ОТРИЦАТЕЛЬНОГО ответа от сервака или редактирования формы.

  2. После успешной отправки очищать форму.

  3. После отправки переводить форму из состояния create в состояние update.

  4. Проверять дубликаты в бд при добавлении.

  5. Редиректить на страницу просмотра добавленной записи, а уже там выдавать сообщение.

Есть еще пара способов, типа передавать уникальный код транзакции, чтобы наверняка определить отправку одних и тех же данных, но они сложнее в реализации.