Form Elements

From XPUB & Lens-Based wiki

Overview

File:FormElements.pdf

Exercises

  1. Draw a line to connect the rendered form elements (on the left) to the line of code that defines them.
  2. Check the resulting URL when the form gets submitted & see if you can see the results of the form in the "query string". Note in particular what clicking on the image does.

"Default values" can be set in different ways, depending on the type of element:

  • For a text input, by adding a "value" attribute to.
  • For a checkbox, by adding checked="checked" as an attibute / value.
  • For a radiobutton, or an option element, by adding selected="selected" as an attibute / value.
  1. Experiment with adding default values. Hint: try adding the attribute/value pair (selected="selected", and checked="checked" to various elements).
  2. Add an "onload" hook to auto-focus this form (see #Form Auto-Focus)

Form Art

In 1997, Alexei Shulgin created form art.

Other Resources


Form Auto-Focus

It is possible, with a small bit of JavaScript, for a page to automatically set the "focus" of a page on a particular form element when the page loads. This is particularly useful when presenting the user with a small form, such as a user login, that the user may often come across and thus where every extra click slows down what might be an otherwise quick process. Most "power users" know that by pressing the "tab" key, the browser will then shift focus to a next form element, if possible, which makes filling in a simple form something that can be done only with the keyboard.

This is achieved by adding a single command to the page's "onload hook" (a function that gets called one time, when the page has finised loading. The command, here, uses the document getElementById function to retrieve a particular form element with a particular id, and then calls it's focus method.

<body onload="document.getElementById('username').focus()">
<form action="" method="get">
name: <input type="text" id="username" name="username" value="" /><br />
password: <input type="password" name="userpassword" value="" /><br />
<input type="submit" name="thebutton" value="login" />
</form>
</body>