Client-Side
Web Apps II
- Forms
- Web Storage
Version
v1.0 | 16 November 2021 |
Acknowledgments
Thanks to:
- Hamzeh Roumani, who has shaped EECS-4413 into a leading hands-on CS course at EECS and who generously shared all of his course materials and, more importantly, his teaching philosophy with me;
- Parke Godfrey, my long-suffering Master’s supervisor and mentor; and
- Suprakash Datta for giving me this opportunity to teach this course.
Printable version of the talk
Forms
HTML Forms
An HTML form is used to collect user input. The user input is most often sent to a server for processing.
The <input>
Element
The HTML <input>
element is the most used form element. An <input>
element can
be displayed in many ways, depending on the type attribute. Here are some
examples:
Type | Description |
---|---|
<input type="text"> |
Displays a single-line text input field |
<input type="radio"> |
Displays a radio button (for selecting one of many choices) |
<input type="checkbox"> |
Displays a checkbox (for selecting zero or more of many choices) |
<input type="submit"> |
Displays a submit button (for submitting the form) |
<input type="button"> |
Displays a clickable button |
More Input Types:
color
date
datetime-local
email
file
hidden
image
month
number
password
range
reset
search
tel
text
time
url
week
More Form Elements
Tag | Description |
---|---|
<form> |
Defines an HTML form for user input |
<input> |
Defines an input control |
<textarea> |
Defines a multiline input control (text area) |
<label> |
Defines a label for an <input> element |
<fieldset> |
Groups related elements in a form |
<legend> |
Defines a caption for a <fieldset> element |
<select> |
Defines a drop-down list |
<optgroup> |
Defines a group of related options in a drop-down list |
<option> |
Defines an option in a drop-down list |
<button> |
Defines a clickable button |
<datalist> |
Specifies a list of pre-defined options for input controls |
<output> |
Defines the result of a calculation |
Form Validation
Data Validation
Data validation is the process of ensuring that user input is clean, correct, and useful.
Typical validation tasks are:
- Has the user filled in all required fields?
- Has the user entered a valid date?
- Has the user entered text in a numeric field?
- Most often, the purpose of data validation is to ensure correct user input.
Validation can be defined by many different methods, and deployed in many different ways. Server side validation is performed by a web server, after input has been sent to the server. Client side validation is performed by a web browser, before input is sent to a web server.
HTML Constraint Validation
HTML5 introduced a new HTML validation concept called constraint validation.
Attribute | Description |
---|---|
disabled | Specifies that the input element should be disabled |
max | Specifies the maximum value of an input element |
min | Specifies the minimum value of an input element |
pattern | Specifies the value pattern of an input element |
required | Specifies that the input field requires an element |
type | Specifies the type of an input element |
Web Storage
Web Storage API
The Web Storage API provides mechanisms by which browsers can store key/value pairs, in a much more intuitive fashion than using cookies. The two mechanisms within Web Storage are as follows:
-
sessionStorage
maintains a separate storage area for each given origin that’s available for the duration of the page session (as long as the browser is open, including page reloads and restores)- Stores data only for a session, meaning that the data is stored until the browser (or tab) is closed.
- Data is never transferred to the server.
- Storage limit is larger than a cookie (at most 5MB).
-
localStorage
does the same thing, but persists even when the browser is closed and reopened.- Stores data with no expiration date, and gets cleared only through JavaScript, or clearing the Browser cache / Locally Stored Data.
- Storage limit is the maximum amongst the two.
These mechanisms are available via the window.sessionStorage
and
window.localStorage
properties (to be more precise, in supporting browsers the
Window
object implements the WindowLocalStorage
and WindowSessionStorage
objects, which the localStorage
and sessionStorage
properties hang off) —
invoking one of these will create an instance of the Storage
object, through
which data items can be set, retrieved and removed. A different Storage
object
is used for the sessionStorage
and localStorage
for each origin — they function
and are controlled separately.
Web Storage Examples
This slide is intentionally left blank.
Return to Course Page