Xpoint
   [напомнить пароль]

Отправка формы через JQuery - теряется отправившая кнопка

Метки: [без меток]
2020-07-08 21:06:54 [обр] Principal AG(0/11)[досье]

Всем доброго в.с.!
На событие submit формы вешаю функцию отправки данных формы на сервер через Ajax методом POST.

function on_submit(ev) {
   var data = $(this).serialize()
   console.log(data);
   $.ajax({
      url: 'server.pl',
      type: 'POST',
      data: data,
      success: function (res) {
         console.log(res);
         $('#responce').html(res);
         
      },
      error: function () {
         console.log('ошибка сервера!');
      }
   });
   ev.preventDefault();
}

Всё прекрасно отправляется и получается за исключением того, что теряется кнопка через нажатие которой произошла отправка. Что посоветуете делать? Перевешивать отправку с события submit формы на событие click кнопки и имя кнопки потом дописывать к переменной data ... как-то не очень хочется. Может есть какие-то другие варианты? Заранее спасибо.

спустя 17 часов [обр] Jared(6/26)[досье]
Что значит "теряется"?
спустя 8 часов [обр] Principal AG(0/11)[досье]
Нажатой кнопки (имя=значение) нет в результате метода .serialize(), соответственно нет и в отправке на сервер.
спустя 21 час [обр] Евгений Седов aka KPbIC(4/187)[досье]
Вы описали локику, по которой отслеживать submit недостаточно. Почему вас смущает клик?
спустя 2 дня 3 часа [обр] Илья Cтpeльцын aka SelenIT(48/171)[досье]
Похоже, это документированное поведение (см. «Note» перед примером). Как вариант, можно по клику по кнопке сохранять ее имя в hidden-поле, а дальше обрабатывать submit как обычно... но проще и надежнее, наверное, честно перевесить обработчик целиком.
спустя 20 часов [обр] Principal AG(0/11)[досье]
Евгений Седов aka KPbIC[досье]Не то, что бы смущает, просто хотелось повесить именно на событие summit т.к. отправка через ajax должна выполняться лишь при определённом условии. При невыполнении этого условия, должна отрабатывать стандартная отправка формы с полным обновлением страницы. Уже перевесил на click, протестировал, всё работает ... но мне всё равно не нравится. Жаль, что так и не нашёл возможности зацепиться за какое ни будь свойство формы - типа "активная кнопка" или "активный элемент формы".
спустя 6 минут [обр] Principal AG(0/11)[досье]
Илья Cтpeльцын aka SelenIT[досье]Про использование дополнительного hidden думал, но отверг т.к. в этом случае имена (name) кнопки и hidden будут пересекаться, а менять хидену помимо вэлью ещё и нэйм ... как-то уж очень некрасиво. ))
Powered by POEM™ Engine Copyright © 2002-2005