Javascript 使用PJAX提交表单
我在我的web项目中使用PJAX,当我提交我的表单时,PJAX实际处理它,相关的东西会进入PJAX容器并在其中替换,但在默认操作发生之后——表单以传统方式提交,整个页面再次加载 表单HTML在这里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
<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'});