Skip to main content

HTML Form Elements

HTML forms consist of several different elements that allow users to enter and submit data to a web server.

Here are some of the most commonly used HTML form elements:

The <form> Element

The <form> element is used to create a container for all the form elements. It specifies the action and method attributes of the form, which determine where the form data is submitted and how it is sent.

As an example:

<form action="/submit-form" method="POST">
<label for="email">Email:</label>
<input type="email" id="email" name="email" required />

<button type="submit">Submit</button>
</form>

In this example:

  • We have a form with one input field for the user's email address.
  • The label element is associated with the input field using the for attribute.
  • This creates a clickable label that will activate the input field when clicked.
  • The required attribute is used to specify that the user must fill out the input field before submitting the form.
  • The action attribute specifies the URL where the form data will be submitted, and the method attribute specifies the HTTP method to use (in this case, POST).
  • Finally, the button element is used to submit the form data.

The <input> Element

The <input> element is used to create form controls that allow users to input data. There are several types of <input> elements, such as text, password, email, number, checkbox, radio, and file.

As an example:

<label for="username">Username:</label>
<input
type="text"
id="username"
name="username"
placeholder="Enter your username"
required
/>

In this example:

  • type="text" specifies that this is a text input field.
  • id="username" specifies a unique identifier for the input field.
  • name="username" specifies the name of the input field.
  • placeholder="Enter your username" specifies the placeholder text that will be displayed inside the input field before the user types anything.
  • required specifies that the user must fill out this input field before submitting the form.
  • The label element is associated with the input field using the for attribute, which creates a clickable label that will activate the input field when clicked.

The <select> Element

The <select> element is used to create a dropdown list or a list box, allowing users to select one or more options from a list of predefined values.

As an example:

<label for="color">Select your favorite color:</label>
<select id="color" name="color">
<option value="red">Red</option>
<option value="green">Green</option>
<option value="blue">Blue</option>
</select>

In this example:

  • id="color" specifies a unique identifier for the select element.
  • name="color" specifies the name of the select element, which will be used when the form is submitted.
  • The three option elements specify the options that the user can choose from in the select element.
  • The value attribute specifies the value that will be submitted to the server when the form is submitted, and the text between the opening and closing option tags specifies the text that will be displayed to the user.

The <textarea> Element

The <textarea> element is used to create a multi-line input field that allows users to enter text or other data.

As an example:

<label for="message">Enter your message:</label>
<textarea id="message" name="message" rows="4" cols="40"></textarea>

In this example:

  • id="message" specifies a unique identifier for the textarea element.
  • name="message" specifies the name of the textarea element, which will be used when the form is submitted.
  • rows="4" and cols="40" specify the number of rows and columns to display in the textarea.

The <button> Element

The <button> element is used to create a clickable button that can trigger a form submission or perform some other action.

As an example:

<button type="submit">Submit</button>

In this example:

  • type="submit" specifies that this is a submit button, which will submit the form data to the server when clicked.

The <label> Element

The <label> element is used to associate a text label with a form element.

As an example:

<label for="username">Username:</label>
<input type="text" id="username" name="username" />

In this example:

  • We have a label element that is associated with an input element using the for attribute.
  • The for attribute specifies the ID of the input element that this label is associated with.
  • When the user clicks on the label text, the input element will be activated.
  • type="text" specifies that this is a text input field.
  • id="username" specifies a unique identifier for the input field.
  • name="username" specifies the name of the input field.

The <fieldset> and <legend> Element

The <fieldset> element is used to group related form controls together. The <legend> element is used to provide a title or description for the group of form controls.

As an example:

<fieldset>
<legend>Contact Information</legend>

<label for="name">Name:</label>
<input type="text" id="name" name="name" /><br />

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

<label for="message">Message:</label>
<textarea id="message" name="message"></textarea>
</fieldset>

In this example:

  • We have a fieldset element that groups related form elements together.
  • The legend element provides a title or description for the fieldset, which helps to explain the purpose of the form elements within it.
  • A text input field for the user's name, with a corresponding label element.
  • An email input field for the user's email address, with a corresponding label element.
  • A textarea element for the user's message, with a corresponding label element.

The <optgroup> and <option> Element

The <optgroup> element is used to group related options together in a dropdown list or list box. The <option> element is used to define each individual option in the list.

As an example:

<label for="color">Choose a color:</label>
<select id="color" name="color">
<optgroup label="Primary Colors">
<option value="red">Red</option>
<option value="blue">Blue</option>
<option value="yellow">Yellow</option>
</optgroup>
<optgroup label="Secondary Colors">
<option value="green">Green</option>
<option value="purple">Purple</option>
<option value="orange">Orange</option>
</optgroup>
</select>

In this example:,

  • We have a select element with two optgroup elements, each with several option elements inside them.
  • The optgroup elements group related option elements together and provide a label for each group.
  • The option elements represent the individual options that the user can choose from.
  • Each option element has a value attribute that specifies the value that will be submitted to the server when the form is submitted.
  • The text between the opening and closing option tags specifies the text that will be displayed to the user in the dropdown list.