2010-08-15 64 views
13

我在用戶提交表單後顯示一條消息(#final_msg)。我想要做的是,15秒後,消息(#final_msg)應該淡出,同時清除[或淡出]輸入元素中的文本。是否有可能做到這一點?10秒後淡出消息,使用jQuery清除輸入元素

else { 
         //create post data 
         var postData = { 
         "name" : $("#name").val(), 
         "email" : $("#email").val(), 
         "msg" : $("#msg").val(), 
         "origin" : $("#origin").val() 
         }; 

         //make the call 
         $.ajax({ 
         type: "POST", 
         url: "test.php", 
         data: postData, //send it along with your call 
         success: function(response){ 
          $('#final_msg').fadeIn(); 

         } 
         }); 
       } 

回答

18
setTimeout(function() { 
$('#final_msg').fadeOut(); 
$('#name, #email, #msg, #origin').val('') 
}, 10000); 
+0

感謝您給我們!有沒有辦法將輸入元素的值設置爲默認值?例如,在HTML中設置「您的姓名」。 – input 2010-08-15 18:50:39

+1

使用'for..in'迭代對象並使用postData對象設置值。 – 2010-08-15 18:52:56

5

您應該查看JavaScript setTimeout() method。有了它,你可以在特定的毫秒數之後執行一些功能。

setTimeout(function(){$('#final_msg').fadeOut();}, 10000); 

除了漸弱之外,您可以清除該功能中的所有輸入,例如,對於單選按鈕和複選框分別使用$(':input')。val(「」)和$(':input')。removeAttr(「checked」)(如果有的話)。

36

如果你在jQuery的1.4,你可以使用delay功能:

$('#final_msg').fadeIn().delay(10000).fadeOut();