Динамический ID

Есть форма, которая вызывается на странице несколько раз. Хочется чтобы у нее изменялся id по типу id="form+'i' ", где i увеличивается на один каждый раз, когда форма вызывается. Если, к примеру, на странице эта форма вызывается 3 раза, то у них будут айди "form1", "form2" и "form3" соответсвенно. Как такое реализовать?

Код формы. Она находится в отдельном php-файле и этот файл несколько раз вызывается через include в коде страницы. Форма отправляется через ajax

<form class="feedback-form" id="form" method="POST" action="/blocks/mail.php">
  <div class="result_form"></div>
  <input type="hidden" name="formData" value="Заголовок формы">
  <div class="form-group">
    <input required id="name" name="name" class="form-control frm-name" type="text" placeholder="Имя" />
    <script>
    $(function() {//<-- wrapped here
      $('.frm-name').on('input', function() {
      this.value = this.value.replace(/[^а-яА-Я]/g, ''); //<-- replace all other than given set of values
      });
    });
    </script>
</div>
<div class="form-group">
  <input required id="phone" name="phone" class="form-control frm-phone" type="text" placeholder="Телефон" />
  <script>
  $(function(){
    $(".frm-phone").mask("+7-(999)-999-99-99");
  });
  </script>
</div>
<button class="feedback-btn btn btn-primary" type="submit">Отправить</button>
</form>

И код отправки

 $(document).ready(function () {
    $('form').submit(function () {
      var formID = $(this).attr('id'); // Получение ID формы
      var formNm = $('#' + formID);
      $.ajax({
        type: 'POST',
        url: '/blocks/mail.php', // Обработчик формы отправки
        data: formNm.serialize(),
        success: function (data) {
          // Вывод текста результата отправки в текущей форме
          $(formNm).html(data);
        }
      });
      return false;
    });
  });

  

Я не придумал ничего лучшего, чем просто динамически подставлять в id формы номер в соответствии с вызовом. Может быть есть решение получше этого? ПС: форма отправляется, обработчик работает, но делает это с переходом на страницу обработчика. Т.е. ajax не работает или работает не так как нужно.


Ответы (1 шт):

Автор решения: Inventor

Конечно непонятно зачем это надо, но всё же. На backend считаете количество запросов и подставляете вместо id эту цифру

→ Ссылка