The last section doesn't work properly - you need to count the failure callbacks (and the successes) and only enable the submit button when the error count reaches zero. Otherwise with 2 fields on the form, you can error the first, complete the second and then submit the form.