HTML Forms

INFO 253A: Frontend Web Architecture

Kay Ashaolu

What is a form (on-line)?

SurveyMonkey Form

Forms are everywhere

  • Combining forms with JavaScript makes a site interactive
  • Google Search

Forms are HTML

  • Declarative
  • Standardized
  • Semantic
  • Styled

Input Tag

  • Signals we'd like to get data from the user
  • What type of data?
  • type attribute

Text Input Type

  <input type="text" />

Submit Type

<input type="submit" />

CheckBox Type

<input type="checkbox" checked="checked" />

What does these form elements mean?

  • Just add text next to the box
  • Add an attribute to the tag
  • Add text in a <span> or <p>
  • Add text in a <label> element that "references" the input

CheckBox Type

<input type="checkbox" value="enrolled" id="check-enrolled" checked>
<label for="check-enrolled">Enrolled?</label>

Radio Type

<input type="radio" name="mascot" value="bear" id="radio-bear">
<label for="radio-bear">Bear </label>

<input type="radio" name="mascot" value="cardinal" id="radio-cardinal" />
<label for="radio-cardinal" >Cardinal </label>

Select Type

<label for="state">State:</label>
<select name="state" id="state">
	<option value="CA">CA</option>
	<option value="OR">OR</option>
	<option value="NY">NY</option>

Hidden Type

<input type="hidden" name="page" value="2">

HTML5 types

  • color, tel, email, datetime, url
  • Provides validation as well as default styling
  • HTML5 Reference
<label for="color">Color: </label>
<input type="color" name="color" id="color" /> <br />

<label for="email">Email: </label>
<input type="email" name"email" /><br />

Let's look at a complete form

<form method="GET" action="">
	<input type="text" name="q" value="">
	<input type="submit" value="Google Search">

Form Design

  • Goal: make it easy to provide information
  • Use the appropriate input elements
  • Use CSS to style elements to better set context

User Interface Differences


Example Search Widget


Improvements (browser side)

  • Interactivity!
  • Give users instant feedback
  • Use content in forms immediately on the browser


  • Write imperative style code specific to your site
  • No interaction with a server required
  • Run by the browser