отправка формы с PJAX

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

форма HTML здесь

<form  class="form_class"><input type="text" name="search" id="search_query" class="basic_input" value="" /><button onclick="this.form.submit();" >Find</button></form>

вот мой код pjax для вызова формы

$(document).on('submit', '.form_class', function(event) {
          $.pjax.submit(event, '#container_id');
        });

это работает, но также происходит отправка формы по умолчанию, мне нужен единственный способ PJAX, я не хочу полностью перезагружать страницу (традиционная отправка)


person CodeRows    schedule 10.06.2015    source источник
comment
Нам нужно увидеть форму, проблема может быть в ней.   -  person Jose Manuel Abarca Rodríguez    schedule 10.06.2015
comment
@JoseManuelAbarcaRodríguez добавил код формы   -  person CodeRows    schedule 10.06.2015


Ответы (2)


Прослушайте события отправки, которые вы хотите отправить через PJAX, preventDefault() событие и, наконец, передайте событие $.pjax.submit(event).

Например:

$(document).on('submit', 'form[data-pjax]', function(event) {
    event.preventDefault();
    $.pjax.submit(event, '#pjax-container', {
        'push': true,
        'replace': false,
        'timeout': 5000,
        'scrollTo': 0,
        'maxCacheLength': 0
    });
});
person ncs    schedule 30.01.2016
comment
Добавьте полезное описание к своему ответу, чтобы сделать его более полезным - person Pmpr; 30.01.2016

Причина, по которой он обновлялся, заключается в том, что он добавлял контейнер без добавления фрагмента.

Изменять:

$.pjax.submit(event, '#container_id');

to

$.pjax.submit(event, '#container_id', {fragment:'#container_id'});

Я думаю, что это должно быть исправлено в pjax, если фрагмент не установлен, используйте контейнер... но как это решить, зависит от них.

person Centarius    schedule 19.02.2019