input: The Input element
The <input>
HTML element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.
Attributes
Specific attributes
Required attributes
type="[input type]"
specifies the type of control to render. Common types include:
- text: Single-line text input (default)
- email: Email address input
- url: URL input
- password: Password input (characters are masked)
- number: Numeric input
- date: Date picker
- checkbox: Checkbox for boolean values
- radio: Radio button for selecting one option
- file: File upload control
- submit: Submit button
- hidden: Hidden input field
Recommended attributes
name="[field name]"
specifies the name of the input control, which is submitted with the form data.
Allowed attributes
accept="[file types]"
specifies which file types are acceptable (only for type=“file”).
autocomplete="[autocomplete hint]"
provides hints for form auto-completion.
checked
indicates that the input should be pre-selected (for checkboxes and radio buttons).
disabled
prevents user interaction with the input.
form="[form id]"
associates the input with a form element.
max="[maximum value]"
specifies the maximum value (for numeric and date inputs).
maxlength="[number]"
specifies the maximum number of characters allowed.
min="[minimum value]"
specifies the minimum value (for numeric and date inputs).
minlength="[number]"
specifies the minimum number of characters required.
multiple
allows multiple values (for email and file inputs).
pattern="[regular expression]"
specifies a regular expression for input validation.
placeholder="[placeholder text]"
provides a hint about the expected input.
readonly
makes the input non-editable but still submittable.
required
indicates that the input must be filled before submitting.
size="[number]"
specifies the width of the input in characters.
step="[number]"
specifies the granularity of values (for numeric inputs).
value="[default value]"
specifies the initial value of the input.
Global attributes
accesskey
Specifies a keyboard shortcut to activate or focus an element.
aria-*
Defines accessibility properties and states for assistive technologies.
class
Specifies one or more CSS class names for styling the element.
data-*
Stores custom data private to the page or application.
dir
Sets the text direction (left-to-right, right-to-left, or auto).
hidden
Hides the element from display and assistive technologies.
id
Defines a unique identifier for the element within the document.
inputmode
Hints which virtual keyboard type to display on mobile devices.
itemid
Provides a global identifier for microdata items.
itemprop
Defines a property name-value pair for microdata.
itemref
Associates properties with an item via element IDs for microdata.
itemscope
Creates a new microdata item container.
itemtype
Specifies the vocabulary URL for microdata items (like Schema.org).
lang
Specifies the primary language of the element’s content.
nonce
Provides a cryptographic nonce for Content Security Policy.
role
Defines the element’s semantic role for accessibility.
tabindex
Controls keyboard navigation order and focusability.
title
Provides advisory information displayed as a tooltip.
Example
<form action="/profile" method="post">
<h2>Create Your Profile</h2>
<label for="username">Username:</label>
<input type="text" id="username" name="username" required minlength="3" maxlength="20">
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
<label for="website">Personal Website:</label>
<input type="url" id="website" name="website" placeholder="https://your-domain.com">
<label for="bio">Bio:</label>
<input type="text" id="bio" name="bio" maxlength="160" placeholder="Tell us about yourself">
<fieldset>
<legend>Interests</legend>
<label><input type="checkbox" name="interests" value="blogging"> Personal Blogging</label>
<label><input type="checkbox" name="interests" value="photography"> Photography</label>
<label><input type="checkbox" name="interests" value="coding"> Web Development</label>
</fieldset>
<fieldset>
<legend>Preferred Static Site Generator</legend>
<label><input type="radio" name="ssg" value="jekyll"> Jekyll</label>
<label><input type="radio" name="ssg" value="hugo"> Hugo</label>
<label><input type="radio" name="ssg" value="11ty"> Eleventy</label>
<label><input type="radio" name="ssg" value="other"> Other</label>
</fieldset>
<label for="join-date">Member Since:</label>
<input type="date" id="join-date" name="join-date">
<input type="submit" value="Create Profile">
</form>