Introduction
HTML forms are essential components of web pages that allow users to submit data to a server. Forms are used for various purposes, such as logging in, registering, searching, and collecting user feedback. In this chapter, you will learn about creating and managing HTML forms, including different form elements, attributes, and form submission methods.
Basic Form Structure
An HTML form is defined using the <form>
tag. The form contains various input elements like text fields, checkboxes, radio buttons, submit buttons, etc.
Syntax
<form action="URL" method="POST">
<!-- Form elements go here -->
</form>
Example
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Basic Form Example</title>
</head>
<body>
<h1>Basic Form Example</h1>
<form action="/submit-form" method="POST">
<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>
<button type="submit">Submit</button>
</form>
</body>
</html>
Form Elements
Input Types
Various input types allow you to collect different types of data from the user.
Text Input
<input type="text" id="name" name="name">
Password Input
<input type="password" id="password" name="password">
Email Input
<input type="email" id="email" name="email">
Number Input
<input type="number" id="age" name="age" min="1" max="100">
Date Input
<input type="date" id="birthday" name="birthday">
Checkboxes and Radio Buttons
Checkboxes and radio buttons allow users to select one or multiple options.
Checkbox
<input type="checkbox" id="subscribe" name="subscribe" value="newsletter">
<label for="subscribe">Subscribe to newsletter</label>
Radio Button
<input type="radio" id="male" name="gender" value="male">
<label for="male">Male</label>
<input type="radio" id="female" name="gender" value="female">
<label for="female">Female</label>
Dropdown List
A dropdown list is created using the <select>
tag, with each option defined using the <option>
tag.
<label for="country">Country:</label>
<select id="country" name="country">
<option value="usa">USA</option>
<option value="canada">Canada</option>
<option value="uk">UK</option>
</select>
Textarea
The <textarea>
tag defines a multi-line text input.
<label for="message">Message:</label>
<textarea id="message" name="message" rows="4" cols="50"></textarea>
Submit Button
The submit button is used to send the form data to the server.
<button type="submit">Submit</button>
Form Attributes
action
The action
attribute specifies the URL to which the form data will be sent.
<form action="/submit-form" method="POST">
<!-- Form elements go here -->
</form>
method
The method
attribute specifies the HTTP method to be used when submitting the form. Common values are GET
and POST
.
<form action="/submit-form" method="POST">
<!-- Form elements go here -->
</form>
name
The name
attribute specifies a name for the form, which is used to identify the form data after it is submitted.
<form name="contactForm" action="/submit-form" method="POST">
<!-- Form elements go here -->
</form>
target
The target
attribute specifies where to display the response after submitting the form. Common values are _self
, _blank
, _parent
, and _top
.
<form action="/submit-form" method="POST" target="_blank">
<!-- Form elements go here -->
</form>
Example: Complete Registration Form
Here is an example of a complete registration form that includes various form elements.
Example
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Registration Form</title>
<style>
form {
width: 300px;
margin: 0 auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 10px;
background-color: #f9f9f9;
}
label {
display: block;
margin-top: 10px;
}
input, select, textarea, button {
width: 100%;
padding: 10px;
margin-top: 5px;
box-sizing: border-box;
}
button {
background-color: #4CAF50;
color: white;
border: none;
cursor: pointer;
}
button:hover {
background-color: #45a049;
}
</style>
</head>
<body>
<h1>Registration Form</h1>
<form action="/submit-registration" method="POST">
<label for="firstname">First Name:</label>
<input type="text" id="firstname" name="firstname" required>
<label for="lastname">Last Name:</label>
<input type="text" id="lastname" name="lastname" required>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required>
<label for="gender">Gender:</label>
<input type="radio" id="male" name="gender" value="male" required>
<label for="male">Male</label>
<input type="radio" id="female" name="gender" value="female" required>
<label for="female">Female</label>
<label for="country">Country:</label>
<select id="country" name="country" required>
<option value="usa">USA</option>
<option value="canada">Canada</option>
<option value="uk">UK</option>
</select>
<label for="message">Message:</label>
<textarea id="message" name="message" rows="4" cols="50"></textarea>
<button type="submit">Register</button>
</form>
</body>
</html>
Explanation
<form action="/submit-registration" method="POST">
: Defines the form and specifies the URL and method for form submission.<label>
and<input>
: Collect user data such as first name, last name, email, and password.- Radio buttons: Allow the user to select their gender.
<select>
: Provides a dropdown list for selecting a country.<textarea>
: Allows the user to enter a multi-line message.<button type="submit">Register</button>
: Submits the form data to the server.
Conclusion
HTML forms are a vital part of web development, enabling user interaction and data collection. By using various form elements such as text inputs, checkboxes, radio buttons, dropdown lists, textareas, and submit buttons, you can create comprehensive and user-friendly forms. Understanding how to structure and manage forms, along with their attributes, is essential for creating effective web applications.