/ / jQuery validate form con AJAX - jquery, ajax

Formulario de validación de jQuery con AJAX - jquery, ajax

Estoy tratando de validar un formulario utilizando una llamada AJAX para verificar el inventario disponible. Si la verificación de inventario tiene un error, devuelve un msg, de lo contrario, el formulario debe enviarse.

Tengo el siguiente código:

$("form[id*="distributor_"]").submit(function(){
return checkAvailableInventory($(this));
});

function checkAvailableInventory(form) {
$.ajax({
url: "/ajax/quantity.php?" + form.serialize(),
success: function(msg) {
if (msg) {
alert(msg);
return false;
} else {
return true;
}
}
});
}

Sospecho que este problema se produce debido a la naturaleza asíncrona de AJAX y que la cláusula success: "no se activa hasta mucho después de que se complete el ciclo de vida de checkAvailableInventory ().

¿Alguien tiene alguna sugerencia para resolver este problema? He visto algunos ejemplos de personas que usan tiempos de espera, pero eso parece ser una solución con posibles problemas.

Respuestas

2 para la respuesta № 1

Una opción es hacer la llamada no asíncrona. Puede configurar el async propiedad de lo falso. Es verdad por defecto. No estoy seguro de cuánto tiempo dura la llamada, ya que podría bloquear el navegador hasta que se complete.

EDITAR: Otra opción es devolver falso desde su método que realiza la llamada ajax. Luego, en el método de éxito, cuando llegue allí, puede desvincular la funcionalidad de envío del formulario y luego llamar a form.submit y se publicará en cualquier lugar que lo haga normalmente sin la validación.


0 para la respuesta № 2

¡Es posible que desee revisar el complemento de validación de jQuery! Es bastante simple de usar y maneja la validación remota muy bien.

el plugin: http://bassistance.de/jquery-plugins/jquery-plugin-validation/ Los documentos en validación remota: http://docs.jquery.com/Plugins/Validation/Methods/remote#options