In In-Portal we've developed FormManager class, that is used to manage forms that are submitted and validated through ajax.
I wanted to share several improvements we've made to original version we've used quite a lot over last years:
- set error into a field before form is registered
- set form-specific template to be used in all ajax calls
- perform immediate validation for inputs on blur event, but for other controls (like radio buttons) in click event
- if event, called through AjaxFormHelper::transitEvent method requested a redirect to another page (e.g. by setting $event->redirect property), then automatically perform redirect
- watermarks were not removed when using immediate field validation
- watermark removal code (that was called before form submit) first removed watermarks and then restored them, but should be restoring original values in these fields
- error were not removed from form after it was closed by user (without submitting)
Ready for testing.