Skip to main content

Command Palette

Search for a command to run...

How to Create Forms in HTML: A Beginner’s Guide (with GET vs POST Explained)

Updated
3 min read

Introduction

Forms are one of the most important parts of any website. Whether you are creating a login page, a registration form, or a simple search bar, forms allow users to send information to your server.

In this guide, we’ll go step by step:

  • Building forms in HTML

  • Understanding input types

  • Choosing between GET and POST

  • Making forms accessible with attributes


What is an HTML Form?

An HTML form is a section of a web page that collects input from users. It is defined using the <form> element:

<form action="/submit" method="POST">
  <label for="username">Username:</label>
  <input type="text" id="username" name="username" required>

  <label for="password">Password:</label>
  <input type="password" id="password" name="password" required>

  <button type="submit">Login</button>
</form>
  • action → where the form data should be sent

  • method → how the data is sent (GET or POST)


HTML Input Types Explained

HTML provides many input types to handle different data:

  • Text<input type="text"> (for names, usernames)

  • Password<input type="password"> (hides characters)

  • Email<input type="email"> (validates email format)

  • Number<input type="number"> (only numeric input)

  • Checkbox<input type="checkbox"> (yes/no options)

  • Radio<input type="radio"> (select one option)

  • Date<input type="date"> (calendar picker)

👉 Example: A simple registration form

<form action="/register" method="POST">
  <input type="text" name="fullname" placeholder="Full Name" required>
  <input type="email" name="email" placeholder="Email" required>
  <input type="password" name="password" placeholder="Password" minlength="6" required>
  <button type="submit">Register</button>
</form>

GET vs POST: Which One Should You Use?

Forms usually send data to the server using GET or POST.

GET Method

  • Appends data in the URL (/search?q=javascript)

  • Best for search forms, filters, or non-sensitive data

  • Can be bookmarked and shared

POST Method

  • Sends data in the request body

  • Best for login forms, registration, or payments

  • More secure because data is not visible in the URL

👉 Example comparison:

<!-- GET method (search bar) -->
<form action="/search" method="GET">
  <input type="text" name="q" placeholder="Search...">
  <button type="submit">Search</button>
</form>

<!-- POST method (login form) -->
<form action="/login" method="POST">
  <input type="text" name="username" placeholder="Username" required>
  <input type="password" name="password" placeholder="Password" required>
  <button type="submit">Login</button>
</form>

Making Forms Accessible with HTML Attributes

Accessibility ensures everyone can use your form, including users with screen readers.

Useful attributes:

  • required → field must be filled

  • maxlength="20" → limits characters

  • aria-label → provides labels for assistive technologies

  • for in <label> → links labels to inputs

👉 Example with accessibility:

<form>
  <label for="email">Email Address</label>
  <input type="email" id="email" name="email" required aria-label="Enter your email">

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

Conclusion

Forms are the bridge between users and your application.

  • Use the right input types for better user experience

  • Choose GET for visible/search data, POST for secure data

  • Don’t forget accessibility to make your forms usable for everyone

By mastering forms, you take your first big step toward becoming a front-end or full-stack developer.