0% found this document useful (0 votes)
1 views

forms

This document provides a comprehensive guide on HTML forms, covering their basic structure, elements, validation, submission methods, and styling. It emphasizes the importance of form validation for data accuracy and security, and outlines common validation techniques. Additionally, it discusses best practices for creating accessible and user-friendly forms.

Uploaded by

studylets138
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views

forms

This document provides a comprehensive guide on HTML forms, covering their basic structure, elements, validation, submission methods, and styling. It emphasizes the importance of form validation for data accuracy and security, and outlines common validation techniques. Additionally, it discusses best practices for creating accessible and user-friendly forms.

Uploaded by

studylets138
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Forum Donate

Learn to code — free 3,000-hour curriculum

MARCH 6, 2024 / #HTML

How to Use HTML Forms –


HTML Form Basics
Kelechukwu Isaac Awoke

HTML forms are used to get information from users. They


are widely used in webpages or apps for surveys or
registration processes.

HTML form basics include the common HTML elements, tags, attributes,
concepts, or best practices required for you to create good HTML forms.
The collected data is sent to a server for processing.

Basic Structure of HTML Form

How to Use HTML Form Elements

How to Use the HTML <input> Element

How to Use the HTML <label> Element

How to Use the HTML <textarea> Element

How to Use the HTML <select> Element

Form Validation

Importance of Form Validation

Types of Form Validation

Common Validation Techniques

Form Submission and Methods

How to Style HTML Forms

Best Practices and Accessibility

Conclusion

Basic Structure of HTML Form


You can use the <form> element to create an HTML form

<form action="submit_form" method=" post">


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

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

<button type="submit">Submit</button>
</form>
The HTML <form> element is a container for several HTML form
elements. The <form> element can contain the following:

<input>

<label>

<select>

<textarea>

<button>

<fieldset>

<legend>

<datalist>

<output>

<option>

<optgroup>

How to Use HTML Form Elements


In this section, you'll learn how to use some of the HTML form elements.

How to Use the HTML <input> Element


The <input> element is the most commonly used form element. The
type of information an <input> element can hold depends on the
<type> attribute.

The <input> element can only accept a particular type of data assigned
to it using the <type> attribute.

<form action="">
<input
type="text"
id="name"
name="username"
placeholder="Enter your username"
required
/>
<input
type="password"
id="security"
name="password"
placeholder="Enter your password"
required
/>
<input type="email" name="email" placeholder="Enter your email" />
<input type="checkbox" name="subscribe" value="yes" /> Subscribe to t
newsletter <input type="radio" name="gender" value="male" /> Male
<input type="radio" name="gender" value="female" /> Female
<input type="submit" name="submit" />
</form>

The following are the different <type> attributes that can be assigned
to an <input> element:

<input type="text"> : Allows the user to type in text.

<input type="email"> : The user input must follow an email


format.

<input type="password"> : Accepts password from the user. The


passwords are masked, usually displayed as asterisks (*) or dots,
to protect the privacy of the input.

<input type="checkbox"> : The user can select none or many of


the displayed checkboxes. Checkboxes can be checked or
unchecked.

<input type="radio"> : Allows the user to select only one from


the multiple-choice radio buttons.

<input type="submit"> : Enables the user to submit the form.

The following are other possible attributes found in the input element:

<input name=" "> : Assigns the input field a name. The assigned
name identifies the input data when the form is submitted.
<input id=" "> : The identifier creates a unique id for the input
field. It is usually associated with CSS for styling and JavaScript
for other manipulations.

<input value=" "> : Used to set the initial value for the input
field. The default initial value gives the user an idea of the
information required.

<input placeholder=" "> : A faint pseudo value set to the input


field that disappears once the user starts typing. Gives a hint on
what data to enter, similar to the value attribute.

<input required> : Requires that the input field must be filled


out before submission. Gives an error message when not filled
out.

<input disabled> : As the name implies, this prevents the user


from interacting with the input field. Disables the input field from
accepting input. With this attribute, the input field becomes
unclickable.

<input readonly> : The user can only read the initially set value
but can't change it. Unlike the disabled attribute, the input field is
clickable but can't be modified.

Note that the <input> element doesn't contain a for attribute.

How to Use the HTML <label> Element


The label element associates text with a form input, checkbox, or radio
button.

<form action=" ">


<label for="name" id="user">Username:</label>
</form>

The label element describes the information required in the text field.
The label element is important for accessibility, this makes it easier for
screen-reader users to navigate the form. The assistive technologies
read the label loud to users.

Clicking on the label focuses the corresponding input field when the
for attribute of the label element corresponds with the id attribute of
the input element, making it more convenient for users to interact with
the form.

Label improves the overall usage of the form, providing context and
guidance.

The following are the commonly used attributes for the label element:

<label for=" "></label> : Associates the label with the


corresponding form element, usually an input element. The value
of the for attribute is always the same as the id value of the
associated form element, usually the input element.

id attribute <label id=" "></label> : Gives the label a unique


identifier. The value is set to the same value with the for
attribute of the corresponding form element, usually an input
element. Used for selecting the label for styling in CSS or other
manipulations in JavaScript.

How to Use the HTML <textarea> Element


A multi-line text input field, allows users to write longer text or
paragraphs. The rows and cols attributes control the initial size of the
textarea box.

<form action="">
<label for="testimony">Testimony:</label>
<textarea name="testimony" id="testimony" cols="30" rows="10"></texta
</form>
The rows attribute controls the height (vertical size) of the textarea box,
determining the number of visible lines while the cols attribute
controls the width (horizontal size), specifying the number of visible
characters per line.

Note, that the textarea box can wrap to fit the entered text within its
defined width.

Unlike the single-line input field, the textarea element does not have a
maxlength attribute or value attribute. The content is placed within
the opening and closing tags.

For accessibility, it's a good practice to associate label or context with


the textarea element to assist users who use screen-readers or other
assistive technologies.

How to Use the HTML <select> Element


The <select> element creates a drop-down list, that allows users to
select one or multiple options from the listed choices.

<form action="">
<label for="numbers">Choose a favorite number:</label>
<select name="numbers" id="numbers" size="5" multiple>
<option value="" disabled selected>Select a number</option>
<option value="one">1</option>
<option value="two">2</option>
<option value="three">3</option>
<option value="four">4</option>
<option value="five">5</option>
<option value="six">6</option>
<option value="seven">7</option>
<option value="eight">8</option>
<option value="nine">9</option>
<option value="ten">10</option>
</select>
</form>
The <option> element is contained within the <select> element. The
<option> element holds the items to be selected. Each <option>
represents one item in the drop-down list.

Each <option> element is expected to have a <value=" "> attribute,


which holds the value to be submitted when the form containing the
<select> element is submitted. If the <value=" "> attribute is omitted,
the text content of the <option> element becomes the value to be
submitted instead.

The <name=" "> attribute identifies the select control on the server side
when the form is submitted. The <name=" "> is important for processing
the form data on the server.

You can select one of the options as the default selection by including
the <selected> attribute in the <option> element. If no option is
selected, then the first option in the list will be selected by default.

The <size=" "> attribute sets the number of options you can see at
once in the drop-down by setting the <size=" "> attribute on the
<select> . Note that other options are seen as you scroll down.

Including the <disabled> attribute on the <select> element, disables


the select option and prevents the users from selecting any option. The
select option becomes unclickable.

Also, multiple options can be selected by including <multiple> attribute


on the <select> element. You can hold the Ctrl (or Command on Mac)
key to select multiple options.

Understanding the <select> element and using the necessary


attributes can make your form convenient for users to select different
options and for easy processing of the <select> element on the server
side.
Form Validation
Simply put, this is the process of checking whether the data entered in
the form is correct, complete, and meets the specified format.

Importance of Form Validation


Data Accuracy: Prevents submission of incorrect or incomplete
data.

Security: Checks the data to prevent incorrect or malicious data


from being submitted, thereby reducing harmful attacks or data
breaches.

User Experience: Makes filling out the forms less stressful by


giving a quick error message if the user is entering the wrong
data. Also, it can be used to suggest the expected format.

Efficiency: Form validation before submission saves time and


resources. Reduces unnecessary requests to the server,
improving the overall performance of your application.

Types of Form Validation


1. Client-Side Validation: The user's browser performs the checks
before submission. How does the browser validate forms?
Browsers use JavaScript, CSS, or HTML attributes to validate
forms. The advantage of client-side validation is the quick error
message the user receives when data is incorrect or incomplete.
The response is quick and doesn't require validation from the
server side. One of the disadvantages is that client-side
validation can be bypassed by an experienced user.

2. Server-Side Validation: The server checks the form data after


submission. Server-side validation is more robust and secure.
Performs double verification, and validates form data again, even
if the client-side validation fails or is bypassed. The server-side
validation is commonly done by using scripting languages like
PHP or ASP.NET.
Note that you can use either of the two or a combination of both.

Common Validation Techniques


These are common HTML attributes that help you decide the pattern of
form validation.

Length Limits
You can use the maxlength attribute to set the maximum number of
characters an input field can hold.

<form>
<input type="text" id="username" name="username" placeholder="Username" m
<button type="submit">Submit</button>
</form>

Required Fields
Requires that certain input fields are filled before the form is submitted.
The <required> attribute is used to perform this technique. An error
message is displayed when the required field is not filled by the user.

<form>
<input type="text" id="username" name="username" placeholder="Username" r
<input type="email" id="email" name="email" placeholder="Email" required>
<button type="submit">Submit</button>
</form>

Data Format
Ensures the data entered by the user follows the required format. The
<input type="email"> type attribute set to email will require the user
to enter the correct email format (for example: [email protected])
before form submission.

The same thing happens if the type attribute is set to number <input
type="number"> , the user can only put data from 0-9.

<form>
<input type="email" id="email" name="email" placeholder="Email" required>
<button type="submit">Submit</button>
</form>

Password Strength
The <pattern=""> attribute is used to specify password complexity
such as minimum length, and the inclusion of uppercase or lowercase
letters, numbers, and special characters.

The <title=""> attribute displays the error message when the user
hovers over the input field or when the entered password does not
match the specified password format. The higher the password
complexity, the higher the user account is protected from unauthorized
access.

<form>
<input type="password" id="password" name="password" placeholder="Passwor
<button type="submit">Submit</button>
</form>

Numeric values
You can set the range of numeric values to be entered by the user by
using the min and max attributes. For example, to check if a user is
within the specified age range:
<form>
<input type="number" id="age" name="age" placeholder="Age" min="18" max="
<button type="submit">Submit</button>
</form>

Having a good form validation practice helps to create forms with


accurate data and reduces vulnerability to malicious attacks.

Form Submission and Methods


When the submit button is clicked after filling out a form, your
information is sent to the server for processing. This is called form
submission.

Methods of Form Submission


Form data is sent to the server using the method attribute. There are
two commonly used methods:

GET Method
With the get method <method="get"> , the form data is sent using the
URL in the browser's address bar to the server.

<form action="http://example.com" method="get">


<input type="text" name="name" />
<input type="submit" value="Submit" />
</form>

Using the above code sample, when the user enters a name (let's say the
user's name is KC) in the input field named ''name'', and clicks the submit
button, the form data will be sent to the server in the URL like this:
"http://example.com?name=KC".
The GET method is not safe, as it is commonly used for sending small
amounts of data that is not sensitive.

POST Method
The post method attribute <method=post> sends the form data in the
body of the HTTP request to the server, rather than in the URL.

<form action="http://example.com" method="get">


<input type="text" name="name" />
<input type="submit" value="Submit" />
</form>

Using the same code sample above, the POST method will send the form
data to the server like this: "https://example.com/submit.php".

You'd should notice that the POST request does not contain the form
data in the URL but rather points to the server-side script (submit.php)
that will process the form data.

The sent form data is not visible. The POST request is used to submit
sensitive information, like passwords, since the data is not visible in the
URL, but rather sent in the HTTP body request.

How to Style HTML Forms


HTML forms can be styled using CSS, just like any other HTML element.
You can do the following with CSS to match the design of your website:

Selectors: CSS selectors such as element selectors, class


selectors, or ID selectors can be used to select specific elements
in the HTML code for styling.

Typography: Typography can be used to set the font-family,


adjust the size, font-weight, and color of the text within the form
element to enhance readability.

Box Model: With the knowledge of CSS properties like padding,


border, and margin, which affect the spacing and layout, you can
style HTML elements.

Colors and Backgrounds: The color of your text or background


can be styled using the CSS properties like color and background-
color (or background-image) respectively.

Responsiveness: With media queries, you can make your form


responsive and adapt to different screen sizes and devices.

Layout: You can control the layout of a form to make it user-


friendly with CSS properties like display, float, and positioning.

Best Practices and Accessibility


Like every other HTML document, ensure your form complies with web
standards and is accessible to people with disabilities. For best practices
and accessibility, take note of the following:

Structures and Semantics


Always use proper semantic HTML elements (like <form> ,
<input> , <label> , and so on) to structure not just forms but
every other HTML document.

Nest elements properly and associate labels to their respective


input field.

Make sure your input fields have the appropriate type attributes.

Error Handling and Validation


Combine both client-side and server-side validation to avoid
incorrect or incomplete data submission.

Use the appropriate attribute to display error messages when


form submission fails or validation errors occur.
Responsive Design
Your forms should be responsive and adapt to various screen
sizes and devices.

Use CSS media queries to adjust your form layouts and styles
based on the viewport size.

Design and Contrast


Use fonts and colors that are easy to see.

The color contrast between text and background should ensure


readability, especially for users with low vision.

ARIA Roles and Attributes


ARIA (Accessible Rich Internet Application) roles and attributes
improve accessibility for screen-reader users or other assistive
technologies.

ARIA attributes ( aria-labelledby , aria-describedby , and


aria-invalid ) provide additional context and feedback for form
elements.

Conclusion
Creating good HTML forms that meet web standards improve user
interaction and experience on your website. By following the best
practices and accessibility, developers can create forms that are user-
friendly, and effective in collecting data from users.

You can learn more about HTML forms and responsive web design using
freeCodeCamp's Responsive Web Design Certification
Kelechukwu Isaac Awoke
Read more posts.

If this article was helpful, share it .

Learn to code for free. freeCodeCamp's open source curriculum has


helped more than 40,000 people get jobs as developers.
Get started

ADVERTISEMENT

freeCodeCamp is a donor-supported tax-exempt 501(c)(3) charity organization (United States


Federal Tax Identification Number: 82-0779546)

Our mission: to help people learn to code for free. We accomplish this by creating thousands of
videos, articles, and interactive coding lessons - all freely available to the public.

Donations to freeCodeCamp go toward our education initiatives, and help pay for servers, services,
and staff.

You can make a tax-deductible donation here .

Trending Guides
Date Formatting in JS Java Iterator Hashmap Cancel a Merge in Git
What is a Linked List? Install Java in Ubuntu Python Ternary Operator
Full Stack Career Guide Python Sort Dict by Key Smart Quotes Copy/Paste
JavaScript Array Length Sets in Python Kotlin vs Java
SQL Temp Table HTML Form Basics Comments in YAML
Pandas Count Rows Python End Program Python XOR Operator
Python Dict Has Key Python List to String Exit Function in Python
String to Array in Java Python Import from File Parse a String in Python
Python Merge Dictionaries Copy a Directory in Linux Reactive Programming Guide
Center Text Vertically CSS What’s a Greedy Algorithm? Edit Commit Messages in Git

Mobile App

Our Charity

About Alumni Network Open Source Shop Support Sponsors Academic Honesty

Code of Conduct Privacy Policy Terms of Service Copyright Policy

You might also like