Cita de: EFEX en 5 Marzo 2018, 22:53 PMCódigo (javascript) [Seleccionar]
...
$.when($.ajax("verificar_captcha.php"),$.ajax("anadirevento.php"))
.then(validar12(),send());
...
Creo que el error se debe a validar12(), debe pasarse como una referencia a una funcion(validar12) en .then y como es una funcion sin argumentos siempre se cumplira la condicion.Código (javascript) [Seleccionar]
...
.then(validar12); //Nota que es sin los parentesis.
...
Creo que no es valido usar send() despues de validar12, segun la documentacion la sagunda funcion se reserba en caso de que alguno de las peticiones ajax no pudieron realizarse.
Ademas, deberias plantear si de verdad necesitas un captcha, por que estas tratando de validar el captcha pero a la vez subes la consulta, osea que el captcha no sirve para nada. Fijate en la consola, F12 > Network, veras como se disparan las dos consultas ajax cuando apretas el boton. Deberias ser.. verificar campos vacios > verificar captcha > añadir evento.
Hola. Ya lo conseguí, era más fácil de lo que creía, al final no lo hice con when(), así que lo hice con condiciones if else, este es el código:
Código [Seleccionar]
$(document).ready(function() {
$("#enviar").click(function(){
var datos=$('#demo').serialize();
var fecha2 = $("#data");
var tipo2 = $("#tipoEventos");
var otro2 = $("#otroTipoEventos");
var materia2 = $("#materia");
var tarea2 = $("#tarea");
$.ajax({
type:"POST",
url:"verificar_captcha.php",
data:datos,
success:function(resp){
if (resp!=1){
$(".popup_errorcaptchaevento").delay(500).slideDown("slow");
$(".popup_errorcaptchaevento").delay(1000).slideUp("slow");
}else{
$(".popup_correctoevento").delay(500).slideDown("slow");
$(".popup_correctoevento").delay(1000).slideUp("slow");
$.ajax({
type:"POST",
url:"anadirevento.php",
data:datos,
success:function(r){
if (r!=1){
$(".popup_errorevento").delay(500).slideDown("slow");
$(".popup_errorevento").delay(1000).slideUp("slow");
}
}
})
}
}
})
return false;
});
});
No puse el popup de aviso de campos vacíos, ya que no me lo ejecutaba, y además no era de gran importancia, era más un detalle.
Gracais por vuestra atención.