2010-08-15 8 views
13

Estoy mostrando un mensaje (#final_msg) después de que el usuario envía el formulario. Lo que quiero hacer es que, después de 15 segundos, el mensaje (#final_msg) desaparezca, borrando [o atenuando] el texto en los elementos de entrada también. ¿Es posible hacer esto?Mensaje de fundido después de 10 segundos, borrando los elementos de entrada usando 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(); 

         } 
         }); 
       } 

Respuesta

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

Gracias por esto! ¿Hay alguna manera de establecer el valor de los elementos de entrada a sus valores predeterminados? Por ejemplo, 'Your Name' como se establece en el HTML. – input

+1

iterar a través del objeto con un 'for..in' y establecer el valor utilizando el objeto postData. –

5

Debería mirar en el JavaScript setTimeout() method. Con él, puede ejecutar alguna función después de un número específico de milisegundos.

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

Además del desvanecimiento, puede borrar todas las entradas en esa función, p. usando $ (': input'). val ("") y $ (': input'). removeAttr ("checked") para los botones de opción y las casillas de verificación respectivamente (si hay alguno que sea).

36

Si estás en jQuery 1.4, puede utilizar la función delay:

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