Pregunta

Tengo un mensaje que quiero fadeIn cuando un formulario se envía con éxito. Estoy usando el formulario plugin de jQuery y el código:

$(document).ready(function() {
var options = {
target: '#output',
beforeSubmit: validate,
resetForm: true
}; 
$('#holdform').ajaxForm(options);
});

La función de validación funciona perfectamente por lo que añade este código antes de que vuelva true :
(...)

$('#output').fadeIn('slow');
return true;    
}

Esto debería fadeIn el div que tengo debajo de la forma, con el estilo como display: none ;.
Pero lo que sucede es que el div se desvanece y luego desaparece. ¿Alguien tiene una explicación y, posiblemente, una solución para solucionarlo? ¡Gracias de antemano!

El código se puede ver en ella a errores acción aquí: http://gadebold.dk/events/ tilmeld /

¿Fue útil?

Solución

Lo que está pasando es el contenido está siendo reemplazado. Ya está desvaneciendo en el div #output, pero cuando la respuesta del servidor regresa, la forma plugin es poner esa respuesta en #output porque eso es lo que tiene el objetivo puesto en.

Si no se preocupan por la respuesta del servidor, basta con retirar la opción target y no va a sustituir a su contenido, de esta manera:

$(document).ready(function() {
  var options = {
    beforeSubmit: validate,
    resetForm: true
  }; 
  $('#holdform').ajaxForm(options);
});

Ver aquí para una lista completa de opciones

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top