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 validateForm
będzie wykonywane synchronicznie, ale wygląda na to, że each()
funkcja jQuery jest wykonywana asynchronicznie. Czy mam rację? Dlaczego to nie działa?
each
jest synchroniczny, ale kod wewnątrz może nie być ...