Как предотвратить отправку формы ajax, написанной где угодно?

#javascript #jquery #ajax

#javascript #jquery — запрос #аякс #jquery #ajax

Вопрос:

Я разрабатываю плагин на основе другого pro plugins в WordPress. Я хотел бы остановить отправку формы ajax, которая написана в другом плагине. Я не могу изменить ajax-код в другом плагине.

Текущий сценарий

Когда я отправляю форму, она переводит меня на новую страницу, но при этом также выполняется запрос ajax. Я хочу остановить этот ajax-запрос. Просто я просто хочу отправить свою форму обычным способом с новой страницей.


HTML

 <form id="redirect_form" class="abc-form" method="post" name="New Form" action="http://example.com/form-redirect">
    <label for="form-field-field_1" class="abc-field-label">Test</label>
    <input type="text" name="form_fields[field_1]" id="form-field-field_1" placeholder="Enter a location" autocomplete="off">            
    <button type="submit" class="form_redirect_to">Submit</button>
</form>
  

jQuery — Запрос

 jQuery(document).ready(function($){
  jQuery('#redirect_form').on('submit',function(e){
    e.preventDefault();
    e.stopPropagation();
    $(this).off("submit");
    this.submit();
    return false;
  });
});
  

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

1. Вы не можете изменить идентификатор своей формы? Таким образом, функция Jquery не будет запущена

2. @RomainV Раньше у этой формы не было никакого идентификатора, поэтому я добавил идентификатор для запуска нашего jquery перед тем, как использовать его по умолчанию.

3. Хорошо, просто чтобы убедиться, что jQuery, который вы предоставляете, принадлежит вам, но есть также другая функция Jquery, привязанная к этому элементу ? Если да, то как Jquery по умолчанию привязывается к форме? По классу, по идентификатору или, может быть, по тегу?

4. Он привязан с использованием класса из другого js

5. Итак, на данный момент у вас есть ‘<идентификатор формы =»redirect_form» class=»abc-form»>’ . Вы не можете изменить его на ‘<идентификатор формы = «redirect_form» class=»другой класс»>’? Таким образом, другие события Jquery запускаться не будут

Ответ №1:

Как вы упомянули в комментарии, событием Jquery по умолчанию является привязка с использованием класса формы. При изменении класса по умолчанию событие больше не будет запускаться в функции Jquery по умолчанию.

Изменить:

 <form id="redirect_form" class="abc-form">
  

Автор::

 <form id="redirect_form" class="another-class">