rozważ ten scenariusz do walidacji:
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.
}
}
Mój problem polega na tym, że blok if jest wykonywany przed zakończeniem pętli. Spodziewałem się, że ciało programu validateFormbędzie wykonywane synchronicznie, ale wygląda na to, że each()funkcja jQuery jest wykonywana asynchronicznie. Czy mam rację? Dlaczego to nie działa?
eachjest synchroniczny, ale kod wewnątrz może nie być ...