2010-08-15 63 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();