Attaching the validations to the individual fields provides the most immediate feedback on whether what was just typed is valid or not while rerunning all the field validations again prior to submitting the form checks for any overlooked fields and validates them before sending the data to the server.
This process works fine when the validation of a field is completely independent of any other data. Where we want to validate multiple fields to confirm that what they all contain is consistent with each other we can't do individual field validations and will only have the validation prior to submission (plus of course the one on the server). It would make little sense to report a validation error involving two (or more) fields when only the first field has been filled out and the person hasn't got to the other yet.
It makes no sense to attach any ajax style field validations to the processing performed immediately prior to the form being submitted. Such validations can only be done as individual field validations. The equivalent validation is already available when the form is submitted by the server side validation as the only difference between that and the individual field validation is that the entire form is sent for server side validation when the form is submitted instead of just the individual field for the ajax call. While an asynchronous server call can be done for the individual validation so that the person can continue filling out the rest of the form while you validate that one field on the server, you would need a synchronous call if you were to repeat the call immediately prior to submission as otherwise the form will have been submitted and the page would no longer exist to accept the response. Since the data is about to be passed to the server anyway when the form is submitted it makes no sense to delay that submission in order to validate individual fields.
This article written by Stephen Chapman, Felgall Pty Ltd.