Cita:
Iniciado por maycolalvarez eso debe hacerlo en el mismo servidor, cuando valide el captcha vuelque dicho mensaje, no depende de javascript.
Le advierto que no es recomendable la validación de un captcha por medio de ajax para luego enviar la data del formulario, debe de enviarlo TODO de una vez y validar el captcha y la data al mismo tiempo, no validar el captcha en una petición y enviar la data por otra, todo debe hacerse dentro de una misma petición HTTP, así sea por ajax
Hola y gracias por tu respuesta, yo estoy enviando todos los datos al servidor por medio del método $.ajax, lo que pretendo es que cuando, se ha escrito mal el captcha me mande un mensaje que diga: "Error en el codigo captcha" y recarge la imagen del captcha por otra.
Aquí esta el código:
Código Javascript
:
Ver original$(document).ready(function(){
/************************************* CALENDARIO JQUERY UI ******************************************/
$("#Fecha").datepicker({
showOn: 'both',
buttonImage: 'imagenes/calendario.gif',
buttonImageOnly: true
});
/******************************************************************************************************************/
/************************************* VALIDACION DE FORMULARIOS *************************************************/
var correo = /^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/;
$("#Submit").click(function(){
$(".error").remove();
if($("#Nombre").val() == ""){
$("#Nombre").focus().after('<br /><span class="error">Ingrese su nombre</span>');
return false;
}else if($("#Pais").val() == ""){
$("#Pais").focus().after('<br /><span class="error">Ingrese su pais</span>');
return false;
}else if($("#Correo").val() == "" || !correo.test($("#Correo").val())){
$("#Correo").focus().after('<br /><span class="error">Ingrese email valido</span>');
return false;
}else if($("#captcha").val() == ""){
$("#captcha").focus().after('<br /><span class="error">Ingrese los caracteres de la imagen</span>');
return false;
}else{
var datos = "Nombre=" + $("#Nombre").val() +
"&Pais=" + $("#Pais").val() +
"&Telefono=" + $("#Telefono").val() +
"&Correo=" + $("#Correo").val() +
"&Sexo=" + $("input[name='Sexo']:checked").val() +
"&Edad=" + $("#Edad").val() +
"&Permanencia=" + $("#Permanencia").val() +
"&Fecha=" + $("#Fecha").val() +
"&Encontro=" + $("#Encontro").val() +
"&Comentarios=" + $("#Comentarios").val() +
"&url=" + $("#url").val() +
"&captcha=" + $("#captcha").val();
$.ajax({
type : 'POST',
url : 'captcha/c-envio-solicitud-2.php',
data : datos,
success : function(){
},
error : function(){
alert("No se pudo enviar el mensaje. ¡Intentelo nuavamente!");
}
});
return false;
}
});
$("#Nombre, #Pais").keyup(function(){
if( $(this).val() != "" ){
$(".error").fadeOut();
return false;
}
});
$("#Correo").keyup(function(){
if( $(this).val() != "" && correo.test($(this).val())){
$(".error").fadeOut();
return false;
}
});
/**********************************************************************************************************************/
/************************************ REFRESCAR CAPTCHA ***************************************************************/
$('img#refresh').click(function() {
change_captcha();
});
function change_captcha(){
document.getElementById('im_captcha').src="captcha/captcha.php?" + Math.random();
}
/********************************************************************************************************************/
});