现在我有一个用户输入信息的表单。它比bu jQuery ajax函数处理并设置为return false;
,因此在用户提交表单后不会发生页面重新加载。
虽然我需要重新加载页面,但是如果我删除return false;
它会在显示成功消息之前刷新页面(在用户提交数据后显示此消息)。
$.ajax({
type: "POST",
url: "scripts/process.php",
data: dataString,
success: function() {
$("#st_message").html("<p> Your article was successfully added!</p>");
//I need to reload page after the above message is shown
}
});
return false;
那么如何在显示<p> Your article was successfully added!</p>
消息后重新加载页面,稍有延迟,比如2 - 3秒,这样用户就可以实际阅读该消息。
答案 0 :(得分:27)
您可以使用setTimeout()
功能添加延迟,例如:
// This will reload the page after a delay of 3 seconds
window.setTimeout(function(){location.reload()},3000)
根据您的需求:
$.ajax({
type: "POST",
url: "scripts/process.php",
data: dataString,
success: function() {
$("#st_message").html("<p> Your article was successfully added!</p>");
window.setTimeout(function(){location.reload()},3000)
}
});
return false;
<强> Working Example 强>
答案 1 :(得分:3)
用以下的方式做到:
function delayedRedirect(){
window.location = "/index.php"
}
setTimeout('delayedRedirect()', 3000)
setTimeout
用于延迟重定向函数调用,在这种情况下,您可以将某个位置重定向到新的URL(以防您也需要它)。
否则使用location.reload()
重新加载页面。
答案 2 :(得分:2)
您的意思是:JavaScript中的window.location.reload()
答案 3 :(得分:2)
使用
给它setTimeout("window.location='yourpage.php'",3000);
你的代码中的:
$.ajax({
type: "POST",
url: "scripts/process.php",
data: dataString,
success: function() {
$("#st_message").html("<p> Your article was successfully added!</p>");
setTimeout("window.location='yourpage.php'",3000);//reload after 3 sec.
}
});
return false;
答案 4 :(得分:2)
使用setTimeout
方法获取延迟,使用reload
方法重新加载页面。请注意true
调用中的reload
参数,以确保实际重新加载页面,而不仅仅是从缓存中重新绘制。
window.setTimeout(
function(){
location.reload(true)
},
3000
);
答案 5 :(得分:1)
$.ajax({
type: "POST",
url: "scripts/process.php",
data: dataString,
success: function() {
var miliseconds = 2000;
$("#st_message").html("<p> Your article was successfully added!</p>");
setTimeout("window.location=window.location", miliseconds);
//I need to reload page after the above message is shown
}
});
答案 6 :(得分:1)
<script type="text/javascript">
//
//your action here
//
window.setTimeout(function(){self.parent.location="?list"},3000);//after 3 sec go to (?list or example.html page)
return false;
</script>
答案 7 :(得分:1)
使用超时是一个非常糟糕的主意。
答案 8 :(得分:0)
示例:
success: function(data){
$("#loading-img").css("display","none");
swal({
title: "Félécitations",
text: "Votre demande a été transmise au service concerné",
icon: "success",
button: "OK",
});
window.setTimeout(function(){location.reload(true)},3000)
}
});
return false;
}