Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - gpinyol10

#1
Desarrollo Web / Validación formulario Ajax
6 Abril 2016, 10:57 AM
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

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;
}