2013-05-13 27 views
1

我有一个联系表单。我想要做的是,当用户填写表单并通过了所有的检查(查看该字段是否为空,如果该电子邮件实际上是一封电子邮件等),则应显示带动画的确认消息并在动画完成后 - 重新加载页面。用JSON发送表单后重新加载位置

所以,我想会这样:

$.getJSON("inc/API.php", { 
    command: "send_contact_form", 
    ...rest of the keys and values... 
}, function() { 
    clear_form(); 
    $("#form_confirmation").animate({ 
     opacity: 1 
    }, 1000, function() { 
     setTimeout($("#form_confirmation").animate({ 
      opacity: 0 
     }, 3000), 6000, function() { 
      location.reload() 
     }); 
    }); 
}); 

一切正常,除了重装。我在不同的位置尝试过,但我仍然看不到重新加载页面。我在这里做错了什么?

+0

你有没有尝试把console.log()在那里,看看它是否达到重装语句? – 2013-05-13 15:41:26

+0

您将'location.reload()'函数作为第三个参数传递给setTimeout,将被忽略。您需要将它传递给'animate'。 – RichieHindle 2013-05-13 15:45:53

+0

在动画回调中使用** setTimeout()**的逻辑是什么? – 2013-05-13 15:46:16

回答

4

尝试:

setTimeout(function(){ 
    $("#form_confirmation").animate({opacity:0}, 3000, function(){ 
     location.reload(); 
    }); 
},6000); 

您目前拥有的location.reload()起第三setTimeout()的说法是不正确的。上述代码将在确认消息淡出后重新加载页面。

+0

是的,解决了它!非常感谢您的解决方案和解释! – Igal 2013-05-13 15:53:06

相关问题