Множественные отправки сообщений

Здравствуйте!
Для форм обратной связи использую AjaxForm и Formit.
Хуки:
&hooks=`email,FormitTelegram,FormItSaveForm`
— где «FormitTelegram» это просто отправка уведомления в группу Телеграмм.
Соответственно есть проблема — очень часто приходит по 2, 3, а иногда даже по 12 одинаковых сообщений на почту и в Телеграмм.

Как я думал, люди тыкают на кнопку «отправить» по нескольку раз, во время того, как сервер обрабатывает запрос.
Решил блокировать кнопку «отправить» после отправки следующим jQuery скриптом:
$('form').submit(function( e ){
  $('input[type=submit]', $(this)).prop( 'disabled', true );
  $('button[type=submit]', $(this)).prop( 'disabled', true );
  e.preventDefault();
});
Через DevTools браузера проверил — после нажатия на кнопку «отправить» на нее действительно навешивается атрибут disabled.
Но… Множественные заявки с форм продолжаются!
Помогите понять как это возможно?
Как вы защищаетесь от множественных срабатываний форм?
Олег Сергеевич
22 октября 2018, 11:28
72
0

Комментарии: 4

Artur Plugin
22 октября 2018, 11:38
0
я проверку ставлю от дубликатов- если тек имя и тек контент =предыдущим и дата одинаковая то не добавляет/отсылает итд
    Олег Сергеевич
    22 октября 2018, 11:42
    0
    А проверка в Хуком вызывается?
    Олег Сергеевич
    22 октября 2018, 11:57
    0
    А проверку осуществляешь данных из $_POST? Расскажи (или покажи свою наработку, если не жалко), пожалуйста, как ты сравниваешь текущие данные из $_POST с предыдущими?
      Artur Plugin
      22 октября 2018, 15:10
      0
      я это делал на джанго/питоне к добавлению в бд из формы- если юзер нажал назад в браузере или обновить- то дважды пишет, на некоторых форумах тоже такое бывает. Тут можно создать 3 тв переменные — туда писать последние и сравнивать. Но у меня отправка в телеграм бота и мыло работает без повторов по этой статье(не моя)
      dart.agency/blog/integraczii/otpravka-soobshheniya-v-telegram-v-modx-revo.html
      потом еще отправку файла приделал