This site is mobile accessible. Press the "Tap Here" button to use a smaller font-size.

Smartphone icons created by Freepik - Flaticon

7.4 HTML Input Types

This chapter describes the different types for the HTML <input> element.

HTML Input Types

Here are the different input types you can use in HTML:

Tip: The default value of the type attribute is "text".

Input Restrictions

Here is a list of some common input restrictions:

Attribute Description
checked Specifies that an input field should be pre-selected when the page loads (for type="checkbox" or type="radio")
disabled Specifies that an input field should be disabled
max Specifies the maximum value for an input field
maxlength Specifies the maximum number of character for an input field
min Specifies the minimum value for an input field
pattern Specifies a regular expression to check the input value against
readonly Specifies that an input field is read only (cannot be changed)
required Specifies that an input field is required (must be filled out)
size Specifies the width (in characters) of an input field
step Specifies the legal number intervals for an input field
value Specifies the default value for an input field

You will learn more about input restrictions in the next chapter.


Input Type Text

<input type="text"> defines a single-line text input field:

Example 1: HTML input element
 <form>
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname">
</form> 

This is how the HTML code above will be displayed in a browser:




return to top of page

Input Type Password

<input type="password"> defines a password field:

Example 2: HTML input password
<form>
  <label for="username">Username:</label><br>
  <input type="text" id="username" name="username"><br>
  <label for="pwd">Password:</label><br>
  <input type="password" id="pwd" name="pwd">
</form>

This is how the HTML code above will be displayed in a browser:




The characters in a password field are masked (shown as asterisks or circles).

return to top of page

Input Type Submit

  • <input type="submit"> defines a button for submitting form data to a form-handler.
  • The form-handler is typically a server page with a script for processing input data.

The form-handler is specified in the form's action attribute:

Example 3: HTML submit button
<form action="/action_page.php">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname" value="John"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="submit" value="Submit">
</form>

This is how the HTML code above will be displayed in a browser:






If you omit the submit button's value attribute, the button will get a default text:

Example 4: default text on submit button
<form action="/action_page.php">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname" value="John"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="submit">
</form>

return to top of page

Input Type Reset

<input type="reset"> defines a reset button that will reset all form values to their default values:

Example 5: HTML reset button
<form action="/action_page.php">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname" value="John"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="submit" value="Submit">
  <input type="reset">
</form>

This is how the HTML code above will be displayed in a browser:






If you change the input values and then click the "Reset" button, the form-data will be reset to the default values.

return to top of page

Input Type Radio

  • <input type="radio"> defines a radio button.

Radio buttons let a user select ONLY ONE of a limited number of choices:

Example 6: HTML radio buttons
<form>
  <input type="radio" id="male" name="gender" value="male">
  <label for="male">Male</label><br>
  <input type="radio" id="female" name="gender" value="female">
  <label for="female">Female</label><br>
  <input type="radio" id="other" name="gender" value="other">
  <label for="other">Other</label>
</form>

This is how the HTML code above will be displayed in a browser:



return to top of page

Input Type Checkbox

  • <input type="checkbox"> defines a checkbox.
  • Checkboxes let a user select ZERO or MORE options of a limited number of choices.
Example 7: input type = checkbox
<form>
  <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
  <label for="vehicle1"> I have a bike</label><br>
  <input type="checkbox" id="vehicle2" name="vehicle2" value="Car">
  <label for="vehicle2"> I have a car</label><br>
  <input type="checkbox" id="vehicle3" name="vehicle3" value="Boat">
  <label for="vehicle3"> I have a boat</label>
</form>

This is how the HTML code above will be displayed in a browser:



return to top of page

Input Type Button

<input type="button"> defines a button:

Example 8: HTML input button
<input type="button" onclick="alert('Hello World!')" value="Click Me!">

This is how the HTML code above will be displayed in a browser:

return to top of page

Input Type Color

  • The <input type="color"> is used for input fields that should contain a color.
  • Depending on browser support, a color picker can show up in the input field.
Example 9: HTML input color
<form>
  <label for="favcolor">Select your favorite color:</label>
  <input type="color" id="favcolor" name="favcolor">
</form>

return to top of page

Input Type Date

  • The <input type="date"> is used for input fields that should contain a date.
  • Depending on browser support, a date picker can show up in the input field.
Example 10: HTML input date
<form>
  <label for="birthday">Birthday:</label>
  <input type="date" id="birthday" name="birthday">
</form>

You can also use the min and max attributes to add restrictions to dates:

Example 11: dates with max and min values
<form>
  <label for="datemax">Enter a date before 1980-01-01:</label>
  <input type="date" id="datemax" name="datemax" max="1979-12-31"><br><br>
  <label for="datemin">Enter a date after 2000-01-01:</label>
  <input type="date" id="datemin" name="datemin" min="2000-01-02">
</form>

return to top of page

Input Type Datetime-local

  • The <input type="datetime-local"> specifies a date and time input field, with no time zone.
  • Depending on browser support, a date picker can show up in the input field.
Example 12: dates with no time zone
<form>
  <label for="birthdaytime">Birthday (date and time):</label>
  <input type="datetime-local" id="birthdaytime" name="birthdaytime">
</form>

return to top of page

Input Type Email

  • The <input type="email"> is used for input fields that should contain an e-mail address.
  • Depending on browser support, the e-mail address can be automatically validated when submitted.
  • Some smartphones recognize the email type, and add ".com" to the keyboard to match email input.
Example 13: input email
<form>
  <label for="email">Enter your email:</label>
  <input type="email" id="email" name="email">
</form>

return to top of page

Input Type File

  • The <input type="file"> defines a file-select field and a "Browse" button for file uploads.
Example 14: input type = file
<form>
  <label for="myfile">Select a file:</label>
  <input type="file" id="myfile" name="myfile">
</form>

return to top of page

Input Type Month

  • The <input type="month"> allows the user to select a month and year.
  • Depending on browser support, a date picker can show up in the input field.
Example 15: input type = month
<form>
  <label for="bdaymonth">Birthday (month and year):</label>
  <input type="month" id="bdaymonth" name="bdaymonth">
</form>

return to top of page

Input Type Number

  • The <input type="number"> defines a numeric input field.
  • You can also set restrictions on what numbers are accepted.

The following example displays a numeric input field, where you can enter a value from 1 to 5:

Example 16: input type = number
<form>
  <label for="quantity">Quantity (between 1 and 5):</label>
  <input type="number" id="quantity" name="quantity" min="1" max="5">
</form>

The following example displays a numeric input field, where you can enter a value from 0 to 100, in steps of 10. The default value is 30:

Example 17: input number with restrictions
<form>
  <label for="quantity">Quantity:</label>
  <input type="number" id="quantity" name="quantity" min="0" max="100" step="10" value="30">
</form>

return to top of page

Input Type Range

The <input type="range"> defines a control for entering a number whose exact value is not important (like a slider control). Default range is 0 to 100. However, you can set restrictions on what numbers are accepted with the min, max, and step attributes:

Example 18: input type = range
<form>
  <label for="vol">Volume (between 0 and 50):</label>
  <input type="range" id="vol" name="vol" min="0" max="50">
</form>

return to top of page

return to top of page

Input Type Tel

The <input type="tel"> is used for input fields that should contain a telephone number.

Example 20: input type = tel
<form>
  <label for="phone">Enter your phone number:</label>
  <input type="tel" id="phone" name="phone" pattern="[0-9]{3}-[0-9]{2}-[0-9]{3}">
</form>

Note: this form cannot take the 10 digit phone number patern commonly used throughout North America and the English speaking Caribbean.

return to top of page

Input Type Time

  • The <input type="time"> allows the user to select a time (no time zone).
  • Depending on browser support, a time picker can show up in the input field.
Example 21: input type = time
<form>
  <label for="appt">Select a time:</label>
  <input type="time" id="appt" name="appt">
</form>

return to top of page

Input Type Url

  • The <input type="url"> is used for input fields that should contain a URL address.
  • Depending on browser support, the url field can be automatically validated when submitted.
  • Some smartphones recognize the url type, and adds ".com" to the keyboard to match url input.
Example 22: input type = url
<form>
  <label for="homepage">Add your homepage:</label>
  <input type="url" id="homepage" name="homepage">
</form>

return to top of page

Input Type Week

  • The <input type="week"> allows the user to select a week and year.
  • Depending on browser support, a date picker can show up in the input field.
Example 23: input type = week
<form>
  <label for="week">Select a week:</label>
  <input type="week" id="week" name="week">
</form>

return to top of page

input type hidden

  • The <input type="hidden"> defines a hidden input field.
  • A hidden field lets web developers include data that cannot be seen or modified by users when a form is submitted.
  • A hidden field often stores what database record that needs to be updated when the form is submitted.

Note: While the value is not displayed to the user in the page's content, it is visible (and can be edited) using any browser's developer tools or "View Source" functionality. Do not use hidden inputs as a form of security!

Example 24: input type = hidden

Define a hidden field:

<input type="hidden" id="custId" name="custId" value="3487">

return to top of page

HTML Input Type Attribute

Tag Description
<input type=""> Specifies the input type to display