Fork me on GitHub

Form Builder

Provides a graphic user interface method for contructing forms.


Getting Started

First load the seed and CSS files, if you haven't yet.

<script src="https://cdn.alloyui.com/3.0.1/aui/aui-min.js"></script>
<link href="https://cdn.alloyui.com/3.0.1/aui-css/css/bootstrap.min.css" rel="stylesheet"></link>

Then initialize AlloyUI and load the Form Builder module.

YUI().use(
  'aui-form-builder',
  function (Y) {
    // code goes here
  }
);

Using Form Builder

Create an HTML element to house your Form Builder.

<div id="myFormBuilder"></div>

Then initialize a new instance of Form Builder using your element as the boundingBox and render it.

YUI().use(
  'aui-form-builder',
  function(Y) {
    new Y.FormBuilder(
      {
        boundingBox: '#myFormBuilder'
      }
    ).render();
  }
);

When Form Builder is first initialized, it contains no available fields, such elements must be specified in the Form Builder under availableFields. Lets make text fields and checkboxes available.

YUI().use(
  'aui-form-builder',
  function(Y) {
    new Y.FormBuilder(
      {
        availableFields: [
          {
            iconClass: 'form-builder-field-icon-text',
            label: 'Text',
            type: 'text'
          },
          {
            iconClass: 'form-builder-field-icon-checkbox',
            lebel: 'Checkbox',
            type: 'checkbox'
          }
        ],
        boundingBox: '#myFormBuilder'
      }
    ).render();
  }
);
Note: Many other field types are available, please see example for other available types.

Configuring Form Builder

Additional configuration includes setting a field type to unique (making that field type only usable once), setting the width of the element, and specifying which attributes of the element are read only.

YUI().use(
  'aui-form-builder',
  function(Y) {
    new Y.FormBuilder(
      {
        availableFields: [
          {
            iconClass: 'form-builder-field-icon-text',
            label: 'Text',
            readOnlyAttributes: ['name'],
            type: 'text',
            unique: true,
            width: 100
          }
        ],
        boundingBox: '#myFormBuilder'
      }
    ).render();
  }
);

Predefined fields can be specified in the Form Builder so that fields are already included in the form on load.

YUI().use(
  'aui-form-builder',
  function(Y) {
    new Y.FormBuilder(
      {
        boundingBox: '#myFormBuilder',
        fields: {
          {
            label: 'City',
            predefinedValue: 'Chicago',
            type: 'text'
          }
        }
      }
    ).render();
  }
);
For more information about configuration, check out our API Docs.