XForms Input Controls

From http://www.w3schools.com (Copyright Refsnes Data)

# XForms Input Controls

The user interface of XForms uses XForms controls.

## XForms Controls

The user interface elements in XForms are called XForms Controls.

The most commonly used control elements are <input> and <submit>.

Each control element has a ref attribute pointing back to the XForms data model.

## Device Independent Controls

It is important to know that the XForms user interface does not describe exactly how to display the XForms controls.

Because XForms is platform and device independent, XForms leaves it up to the browser to decide how to display the controls.

This way XForms can be used for all types of devices, personal computers, cell phones, hand held computers and much more. XForms is also the perfect solution for defining user interfaces for people with disabilities (handicapped, blind).

## The Input Control

The input control is the most common XForms control. It is used for input one line of text:

    <input ref="name/fname">
    <label>First Name</label>
    </input>

Most often the input control will display as an input field like this:

First Name:

Try it yourself

## The <label> Element

The <label> element is a mandatory child element for all XForms input controls.

The reason for this is to secure that the form can be used for all types of devices (because labels can be treated in different ways). For voice software the label has to be spoken, and for some hand held computers the label has to follow the input, screen by screen.

## The Secret Control

The secret control is a special variant of the input control, designed to input passwords or other hidden information:

    <secret ref="name/password">
    <label>Password:</label>
    </secret>

Most often the secret control will display as an input field like this:

Password:

## The Textarea Control

The textarea control is used for multi-line input:

    <textarea ref="message">
    <label>Message</label>
    </textarea>

The textarea control might display as an input field like this:

Message:

## The Submit Control

The submit control is used for submitting the data:

    <submit submission="form1">
    <label>Submit</label>
    </submit>

## The Trigger Control

The trigger is used to trigger an action:

    <trigger ref="calculate">
    <label>Calculate!</label>
    </trigger>

## The Output Control

The output control is used to display XForms data:

    <p>First Name: <output ref="name/fname" /></p>
    <p>Last Name:  <output ref="name/lname" /></p>

The example above will simply output the content of the <fname> and <lname> node in the XForms XML document (XForms instance):

    <instance>
      <person>
        <name>
          <fname>Hege</fname>
          <lname>Refsnes</lname>
        </name>
      </person>
    </instance>

And display it like this:

First Name: Hege Last Name: Refsnes

Try it yourself

## The Upload Control

The upload control is designed for uploading files to a server:

    <upload bind="name">
    <label>File to upload:</label>
    <filename bind="file"/>
    <mediatype bind="media"/>
    </upload>

From http://www.w3schools.com (Copyright Refsnes Data)