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
Código:
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; }