Javascript 使用PJAX提交表单

Javascript 使用PJAX提交表单,javascript,php,jquery,html,pjax,Javascript,Php,Jquery,Html,Pjax,我在我的web项目中使用PJAX,当我提交我的表单时,PJAX实际处理它,相关的东西会进入PJAX容器并在其中替换,但在默认操作发生之后——表单以传统方式提交,整个页面再次加载 表单HTML在这里 <form class="form_class"><input type="text" name="search" id="search_query" class="basic_input" value="" /><button onclick="this.form.s

我在我的web项目中使用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方式,我不想要完整的页面重新加载(传统提交)

通过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
    });
});

他之所以得到刷新是因为他添加了一个容器而没有添加片段

更改:

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


我认为这应该在pjax中修复,如果未设置片段,则使用容器。。。但如何解决这个问题取决于他们

我们需要查看表单,问题可能就在那里。@JoseManuelAbarcaRodríguez添加了表单代码为您的答案添加有用的描述,使其更有用
$.pjax.submit(event, '#container_id');

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