Saltar al contenido

Return False no funciona dentro de jQuery.ajax

Te damos la bienvenida a nuestra web, aquí vas a hallar la solucíon a lo que estabas buscando.

Solución:

La A en AJAX es realmente muy importante. Significa Asincrónico. Esto significa que activa una solicitud al servidor que puede tardar un tiempo en procesarse y obtiene una respuesta más tarde. Esta respuesta ocurre dentro de la devolución de llamada exitosa. Pero dado que esto sucede mucho más tarde que el envío del formulario real, su formulario ya se envió antes del viene la respuesta espalda. Así que volviendo false de una devolución de llamada exitosa de AJAX no tiene ningún sentido. lo que quieres hacer es volver false desde el controlador de envío de su formulario. Veamos cómo podríamos implementar esto.

Podrías suscribirte a la .submit manejador del formulario y envíe una solicitud AJAX para verificar si el correo electrónico ya se tomó o no y, si no se toma manualmente, active el envío del formulario dentro de la devolución de llamada AJAX exitosa:

$('form').submit(function() 
    // we send an AJAX request to validate the unicity of the email
    $.ajax(
        url: '/ajax/verify-email.php',
        type: 'POST',
        data:  email: $('#email').val() ,
        // we set the context to the form so that inside
        // the success callback 'this' points to the form
        context: this,
        success: function(result) 
            if (result != '1') 
                // If the server send something different than 1
                // we know that the email is unique and trigger
                // the submission of the form using the underlying
                // DOM element to avoid calling the .submit handler
                // recusrively
                this.submit();
             else 
                // The email is not unique => we are informing
                // the user that the email is already in use
                alert('Another user is using this email');
                $('#email').focus();
             
        
    );

    // we cancel the normal submission of the form    
    return false;
);

Además, nunca confíe en la validación del lado del cliente. Asegúrese de que está realizando el email is unique verifique una vez que el formulario se haya enviado con éxito al servidor. Si está utilizando una base de datos SQL que se logra fácilmente con una restricción única en su campo de correo electrónico.

Sección de Reseñas y Valoraciones

No se te olvide dar visibilidad a este post si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *