At GOV.UK we avoid disabling buttons.
If the user submits a form with a problem, they get a useful error message telling them how to fix it.
Disabled buttons are hard to make accessible for people with low vision, and can't easily be focused using the keyboard
@joelanman Ive always disabled the submit button until the form is valid, and provided feedback within the form itself as to what is needed (usually on blur). Is that not the right way?
@robert I think there's always the possibility someone might not understand why the button is disabled - for example they miss a field for whatever reason. Also inline validation is so hard to get right for everyone (people who use screen readers or magnifiers for example) and you have to write server side validation anyway, and then you have to keep both sets of validation rules in sync
@robert oh and everyone has to load and run the extra javascript, but hopefully most people won't need it, so a performance hit too