【发布时间】:2015-06-09 22:51:27
【问题描述】:
我正在通过 ajax 在main.php 中加载一个名为staff_view.php 的表单。它加载正常,但是当我将表单提交给staff_post.php 时,它会重定向到它而不是在控制台中显示,在我添加使用 ajax 加载表单的代码之前,它发布得很好,但在重定向之后。
这是我的代码
$(document).ready(function() {
$('.content_load').load('staff_view.php');
$('ul#nav li a').click(function() {
var page = $(this).attr('href');
$('.content_load').load(page);
$('form.ajax').on('submit', function() {
var that = $(this);
url = that.attr('action'),
type = that.attr('method'),
data = {};
that.find('[name]').each(function(index, value) {
var that = $(this),
name = that.attr('name'),
value = that.val();
data[name] = value;
});
$.ajax({
url: url,
type: type,
data: data,
success: function(response){
console.log(response);
}
});
});
clearAll();
return false;
});
});
function clearAll(){
$("form :input").each(function(){
$(this).val("");
});
}
【问题讨论】:
-
那是因为您必须防止锚点 (
<a>) 的默认行为(操作)在 默认 情况下重定向。简而言之,将$('ul#nav li a').click(function() {更改为$('ul#nav li a').click(function(e) {(注意e),然后添加e.preventDefault();。类似情况:stackoverflow.com/questions/11240897/…(不重复)。考虑到 和 ,表单也发生了同样的情况(提交操作)