.. _dojox/form/manager/index: dojox.form.manager ================== :Status: Draft :Version: 1.3 (trunk) :Project owner: Eugene Lazutkin :Available: since 1.3 .. contents:: :depth: 3 ============ Introduction ============ The form manager is designed to implement highly interactive event-driven `CRUD `_ (sub)applications. In most cases such application can be a reflection of underlying database tables, or an interface to complex calculations. The form manager helps to do following common tasks: * Working with both form widgets and common HTML elements presenting the unified API regardless of underlying form elements. * Unified interfaces for underlying form elements: * Get or set values. * Enable or disable form fields. * Show or hide HTML elements. * Add or remove classes of all controlled elements. * Unified interface to enable/disable underlying form elements. * Processing of unified change events for underlying form elements using *observers*. * Orchestration of complex client-side validation of groups of fields. A simple form widget validation is supported automatically. * Orchestration of I/O. * Form support on the level of :ref:`dijit.form.Form `. In general the form manager shields programmers and designers from dealing with specific form elements. It is quite possible for a designer to use a text input widget for some field, rearrange the HTML later changing the field to a select node, and then change it to a group of radio buttons --- all without changing a single line in the form-handling code. All event processing, value access, enable/disable functionality, and so on will continue working regardless of those changes. Controlled elements ------------------- The form manager works with following elements (inspected on instantiation): * Form widgets. All form widgets (objects based on :ref:`dijit.form._FormWidget `) are recognized automatically. A value of the ``name`` attribute of form widget is used as a unique identifier for this widget. *Important exception: radio buttons all share the same name and grouped as a single complex widget.* * HTML form elements. All HTML form elements (````, ``