Как определить название формы с которой был сделан клик?

Имеется код:
function call() {
  var msg = $('#forma').serialize();
  $('#send').button('loading');
    $.ajax({
      type: 'POST',
      url: 'file.php',
      cache: false,
      data: msg,
      success: function(data) {
        if ($(data).is("#err1")) {
          $('#send').val('Не верный формат...').addClass('btn-danger');
          setTimeout(
            function() {
              $('#send').button('reset').removeClass('btn-danger');
            }, 3000);               
        }
...

Этим кодом мы обрабатываем форму. Вопрос, таких форм на странице 6 штук, как можно их обработать всё одним кодом (т.е не копировать этот кусок кода 6 раз). Собственно для этого наверно нужно определить с какой формы был клик, но как?
  • Вопрос задан
  • 2413 просмотров
Пригласить эксперта
Ответы на вопрос 5
kompi
@kompi
nullstack devoops
Избавиться от id (имею ввиду кнопки отправки, они не должны содержать id), если форм несколько.
formName - название формы.
$('form').each(function(i, e) {
  var msg = $(e).serialize(),
      formName = $(e).attr('name'),
      sendBtn = $(e).find('.send');
  sendBtn.button('loading');
    $.ajax({
      type: 'POST',
      url: 'file.php',
      cache: false,
      data: msg,
      success: function(data) {
        if ($(data).is("#err1")) {
          sendBtn.val('Не верный формат...').addClass('btn-danger');
          setTimeout(
            function() {
              sendBtn.button('reset').removeClass('btn-danger');
            }, 3000);               
        }
});

PS Есть путь проще, задать hidden input с названием формы, тогда не нужен будет formName.
Ответ написан
AMar4enko
@AMar4enko
$('.selector-for-multiple-forms').on('submit', function(event){
    var jqForm = $(this), msg = jqForm.serialize();
    event.preventDefault();
    ... 
});

Каждая из форм, отправка которых должна обрабатываться таким образом, должна иметь класс .selector-for-multiple-forms или можете придумать любой удобный вам селектор.
Ответ написан
Комментировать
@LiguidCool
Ключевое слово this, а дальше смотрите любую особенность вашей формы, например имя.
Ответ написан
Комментировать
@qwestion
По id по имени итд
Ответ написан
Комментировать
Плохой подход.
Обработчику должно быть все равно с какой формы клик.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы