我花了很多时间寻找这个,也许我没有正确地接近这个,但我在点击提交后尝试 .submit 和 .post 。在其他情况下,我已经能够让 ajax 提交在不刷新的情况下正常工作,但是当我以这种方式这样做时,它就不起作用了。我很想知道为什么。
形式
<form id="search" action="process.php" method="post">
Name: <input id="search_text" type="text" name="name" />
<input type="submit" value="Submit" />
</form>
阿贾克斯
$('#search').submit(function() {
$.post(
$(this).attr('action'),
$(this).serialize(),
function(data){
$('#page_nav').html(data.html_page_nav);
$('#results').html(data.table_html);
},
"json"
);
return false;
});
这很有效,它会在不重新加载的情况下提交就好了
下面是我遇到问题的地方。
在 php 服务器端,我发回了我希望能够提交的 html,初始搜索会将其放入原始 html 页面中。
$html_page_nav = "
<ul>
";
for($i=1; $i <= get_query_pages(get_query_count($query), 50); $i++) {
$html_page_nav .= "
<li>
<form id='page_".$i."' action='process.php' method='post'>
<input type='hidden' name='action' value='change_page'/>
<input type='hidden' name='page' value='".$i."'/>
<input type='submit' value='".$i."'>
</form>
</li>
";
}
$html_page_nav .= "
</ul>
";
我尝试做与上述相同的事情,但提交无法正常工作
$(document).ready(function() {
$('#page_1').submit(function() {
console.log("this will not display");
$.post(
$(this).attr('action'),
$(this).serialize(),
function(data){
},
"json"
);
return false;
})
...other jquery
});
此提交将无法正常工作,function() 将不会执行,它将像常规提交一样提交并转到 url,而不是在不刷新整个页面的情况下执行。
任何建议或方法将不胜感激。
提前致谢!