我正在尝试实现以下代码,这些代码成功运行,但是直接通过成功函数。我在那里放了一个警报,只显示一下,但是没有出现以下jquery消息调用。 (消息功能在同一页面的其他实例中有效)。
使用jquery 1.6。
知道为什么代码没有按预期执行?谢谢!
$(document).ready(function(){
$('#postride').submit(function() {
dataString = $("#postride").serialize();
$.ajax({
type: "post",
url: "postride.php",
data:dataString,
error: function() {
alert('error!');
$(".message").text('An error occurred');
$(".message").fadeIn("slow");
$(".message").delay(2000).fadeOut(1000);
},
success: function () {
alert('success!');
$(".message").text('Your post has been completed');
$(".message").fadeIn("slow");
$(".message").delay(2000).fadeOut(1000);
setTimeout( function() { top.location.href="view.php" }, 3000 );
}
})
});
});
答案 0 :(得分:4)
我认为#postride
是您使用ajax
发布的表单。您的代码中的问题是您没有停止要提交的表单的默认行为。一旦你提交表格,就会在ajax电话响应到来之前发布,你几乎看不到任何东西。
试试这个。
$(document).ready(function(){
$('#postride').submit(function(e) {
//This line will prevent the form from submitting
e.preventDefault();
dataString = $("#postride").serialize();
$.ajax({
...
});
});
});
答案 1 :(得分:0)
除非我误解了,否则你没有得到你的消息来显示文字?
I made a jsfiddle of the problem它似乎工作正常。