= AJAX Forms = == Repository == {{{ svn co svn://pollenation.net/forms/branches/ajax-forms forms }}} All the ajax specific stuff is going in the {{{aforms}}} module. == Use Cases == 1. Asynchronous form submitting - submit the form in the background, and then respond to successful or failed submissions by running javascript code. 2. Register events on individual fields, allowing activities to take place (i.e. WYSIWYG editors showing output, guided form field entry.) 3. A bunch of new more useful widgets - autocomplete text fields, sliders, colour wheels, all the fancy stuff GUI forms have had since year dot. 4. Something that could be used heavily throughout a UI: not-really-forms forms. Information boxes that are not form entry fields, but that have "edit" icons alongside them. Click the edit icon, it turns into an editable field. click to submit the field and it greys out, shows a saving icon. Once saved reverts to the normal view mode. 5. live validation - validation that requires async, e.g. "username already used" type messages as people complete registration forms. == Enhanced Field Types == * Slider * Date Picker * Date Range Picker == Validation == Low hanging fruit: reuse the server-side validators immediately on exiting a field. If available, use provided client-side code to optimise. On validation failure, activities are different however: 1. for client-side only validators, it needs to call a javascript function registered for handling errors on that field, 2. for server-side validators, it acts just as the current validators, 3. for mixed validators, it calls a page method that can then notify the client. perhaps provide a default that does (1)? {{{ #!html