AJAX - Validación formulario Ajax

 
Vista:
sin imagen de perfil

Validación formulario Ajax

Publicado por gemma (1 intervención) el 06/04/2016 11:05:04
Hola, estoy haciendo una validación de formulario con Ajax y PHP pero no me funciona.

Yo tengo la siguiente función que la llamo en el formulario con onSubmit. El problema lo tengo que me llega antes al return false del final del todo cuadno aún no ha hecho la petición del ajax, entonces si la petición està correcta, como ya ha mandado false, no me manda el formulario. Pero las comprobaciones en el archivo php estan correctas y me devuelve bien, el problema es que la función validaForm devuelve false antes de esperarse a la respuesta del servidor.
Cómo puedo arreglarlo? Gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
function validaForm(){
	$('#Info1').html('<div style="display:none" class="Error"></div>');
	$('#Info2').html('<div style="display:none" class="Error"></div>');
	$('#Info3').html('<div style="display:none" class="Error"></div>');
	$('#Info4').html('<div style="display:none" class="Error"></div>');
	$('#Info5').html('<div style="display:none" class="Error"></div>');
	$('#Info6').html('<div style="display:none" class="Error"></div>');
	$('#Info7').html('<div style="display:none" class="Error"></div>');
 
	var seleccion=($('input:radio[name=hayFide]:checked').val());
	if (seleccion=='Tengo Fide Id') {
		if($("#fide_id").val() == ""){
			$('#Info1').html('<div class="Error">Campo obligatorio</div>');
			$("#fide_id").focus();
			return false;
		} else if (isNaN($("#fide_id").val())){
			$('#Info1').html('<div class="Error">Tiene que ser un valor numérico</div>');
			$("#fide_id").focus();
			return false;
		} else {
			var fide_id = $("#fide_id").val();
			var dataString = 'fide_id='+fide_id+'&idioma='+language;
			$.ajax({
				type: "GET",
				url: "../wp-content/themes/Divi/comprobarFormulario.php",
				data: dataString,
				success: function(data) {
					$('#Info1').fadeIn(1000).html(data);
					if (data=="") {
						if (comprobar()) {
							return true;
						}
					} else {
						$("#fide_id").focus();
						return false;
					}
				}
			});
		}
	} else {
		if (comprobar()) {
			return true;
		}
	}
 
return false;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder