Better way to perform validation on web forms

Is there a better way (via an appstore module or some other technique) to perform validation on web forms? The out of the box validation is pretty rubbish (in my humble opinion); if I have a page with a series of controls that require validation, and a button to perform an address search (for example) then all the button will do is trigger all the validation messages. The customer has to know to answer all the validated questions correctly before they can do the address search.   Customers do not think like computer programmers!
2 answers

See also for more advanced validation


We never use the validations on the form because indeed of the limitations. We always do it in the commit or when a user goes to the next page. All the valiations are done in a microflow. And you can use this widget to go the the validation that is failing. Or collect all the validation errors and give custom feedback on the user why certain validations fail. Depending on how much fields needs validation we choose one of these options.