considérez ce scénario pour valider:
function validateForm (validCallback) {
$('#first-name').add($('#last-name')).add($('#address')).each(function () {
// validating fields and adding 'invalid' class to invalid fields.
});
// doing validation this way for almost 50 fields (loop over 50 fields)
if ($('#holder .invalid').length == 0) {
// submitting data here, only when all fields are validated.
}
}
Maintenant, mon problème est que, le bloc if est exécuté avant que les boucles ne soient terminées. Je m'attendais à ce que le corps de validateForm
soit exécuté de manière synchrone, mais il semble que la each()
fonction jQuery soit exécutée de manière asynchrone. Ai-je raison? Pourquoi ça ne marche pas?
each
lui-même est traité de manière synchrone. Lancez-vous votre propre opération asynchrone depuis l'intérieur de la boucle?
each
est synchrone, mais le code à l'intérieur n'est peut-être pas ...