Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/10/2012, 09:32
Dav1d
 
Fecha de Ingreso: noviembre-2005
Mensajes: 186
Antigüedad: 19 años
Puntos: 1
Pregunta Problema con jquery al intentar enviar un formulario a un componente de joomla

Hola

Aunque estoy trabajando con joomla 1.5, el problema es con jquery así que pienso que debería poner aquí mi problema, pero digo lo de joomla por si tiene su importancia.

Pongo el código y ahora os explico:
Código:
jQuery(document).ready(function(jQuery) {
	jQuery('#miform').submit(function(){
			result = true;

			//tengo muchas comprobaciones de este tipo, telefono, address,etc..
			var telephone = jQuery('#telephone').val();
			if(telephone!=''){
				result = false;
				//mensajito
                         }
			//llego a la comprobación del email, AQUI VIENE EL PROBLEMA, ANTES TODO BIEN

                          var email = jQuery('#email').val();
			if(email!=''){
				result = validarEmail(JQuery('#email'));
				//mensajito
                         }
                     return result;
		});

       function validarEmail(email){
		var value = email.val();
	
		jQuery.post('index.php?option=com_micomponente&format=raw',
				  {email:value},
					  function(data){
					     if(data=='error'){
						return false;
					     }
					  }
                        });
		
		
		return true;
	}
Os digo lo que no está saliendo, cuando entra en la función validarEmail, primero devuelve true y luego hace la función post, es decir, va a la funcion JQuery.post, la hace y antes de dar el resultado, pasa hasta el final y devuelve el return true.

¿Cómo se esto ? Pues poniendo alert('xxx') y parando el submit con un return false al final.

La pregunta es porque en la función validarEmail no espera a que el post devuelva el resultado (que por cierto lo devuelve bien, si el email ya esta en la base de datos) y luego sigue adelante.

Un saludo.