2010-08-15 25 views
13

Tôi đang hiển thị thông báo (#final_msg) sau khi người dùng gửi biểu mẫu. Những gì tôi muốn làm là, sau 15 giây, thông điệp (#final_msg) sẽ mờ dần, xóa đi [hoặc mờ dần] văn bản trong các yếu tố đầu vào là tốt. có khả năng làm cái này không?Làm mờ thông báo sau 10 giây, xóa các yếu tố đầu vào bằng cách sử dụng 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(); 

         } 
         }); 
       } 

Trả lời

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

Cảm ơn bạn cho điều này! Có cách nào để đặt giá trị của các yếu tố đầu vào cho các giá trị mặc định của chúng không? Ví dụ: 'Tên của bạn' như được đặt trong HTML. – input

+1

lặp qua đối tượng bằng 'for..in' và đặt giá trị sử dụng đối tượng postData. –

5

Bạn nên xem xét JavaScript setTimeout() method. Với nó, bạn có thể thực thi một số hàm sau một số mili giây cụ thể.

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

Ngoài việc làm mờ, bạn có thể xóa tất cả các yếu tố đầu vào trong hàm đó, ví dụ: bằng cách sử dụng $ (': input'). val ("") và $ (': input'). removeAttr ("checked") cho các nút radio và hộp kiểm tương ứng (nếu có).

36

Nếu bạn đang ở trên jQuery 1.4, bạn có thể sử dụng chức năng delay:

$('#final_msg').fadeIn().delay(10000).fadeOut(); 
Các vấn đề liên quan