splitforms.com

HTML · THE FORM ELEMENT

HTML Form — working code, live demo, and how to make it submit

An HTML form is created with the <form> element and collects user input through controls like <input>, <textarea>, and <select>. It sends that data to a server using the action URL and an HTTP method (usually POST). Below is a complete, working form you can copy — it submits to a free backend, no server required.

  • 500 free / mo
  • No backend
  • Copy-paste ready
HTML Form — copy-paste HTML form code that actually submits

Copy-paste ready

The HTML Form example below is a complete, working form — paste it into any HTML page and it submits, no edits to the markup required.

No backend to build

Your html form form posts to one endpoint. No server, PHP, or API route — submissions land in your inbox and a searchable dashboard.

A form that really submits

Unlike a static reference snippet, this <form> form actually sends data to a free splitforms backend, with spam filtering built in.

Copy-paste code

HTML Form code you can paste today.

Replace YOUR_ACCESS_KEY with a key from your free splitforms dashboard. The form posts to one endpoint — submissions land in your inbox and dashboard with spam filtering built in.

Get free access key
form.html
<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">

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

  <label for="email">Email</label>
  <input type="email" id="email" name="email" placeholder="you@example.com" required>

  <label for="message">Message</label>
  <textarea id="message" name="message" placeholder="How can we help?" required></textarea>

  <!-- Honeypot: hidden from humans, bots fill it in -->
  <input type="checkbox" name="botcheck" style="display:none">

  <button type="submit">Send message</button>
</form>

How it works

How to add HTML Form to any page.

Copy the html form example, drop in your free access key, and paste it into any page — submissions start landing in your dashboard.

Copy the code

Copy the HTML Form example below.

Add your access key

Replace YOUR_ACCESS_KEY with a free splitforms key from the dashboard.

Paste into your site

Drop the form into any HTML page. Submissions arrive in your dashboard.

The <form> element

Which HTML Form attributes matter?

The <form> element takes a handful of attributes — these decide how your form behaves and what actually gets emailed to your inbox when someone submits.

  • action — The URL the form data is sent to. Omitting it submits to the current page.
  • method — get (default, appends data to the URL) or post (sends data in the request body — use this for real forms).
  • enctype — How data is encoded. Use multipart/form-data when the form includes file uploads.
  • target — Where to show the response. _blank opens it in a new tab; _self is the default.
  • novalidate — Disables the browser's built-in validation. Usually leave it off so HTML validation runs.
  • autocomplete — on (default) lets the browser pre-fill fields like name, email, and address.
HTML Form attributes reference

Common mistakes

HTML Form not working? Here's why.

Most broken forms come down to a few small mistakes with the <form> element. Check these before you ship — then forward every submission to Slack or a webhook.

  • Every field needs a name — A control without a name= attribute is not included in the submitted data. The id is for labels and anchors — it is not sent anywhere.
  • Use POST for real submissions — GET appends fields to the URL, exposing emails and messages to logs and history. POST keeps data in the request body.
  • A button inside the form submits it — A <button> with no type defaults to type="submit". Use type="button" when you only want it to run JavaScript.
Common html form mistakes to avoid

How SplitForms works

From form to workflow in 3 simple steps.

Connect your form, collect every submission, and send data where it needs to go — without building backend infrastructure.

A SplitForms contact form submission launching straight to your inbox

Add your endpoint

Point your form to your unique SplitForms endpoint. That's it.

HTML form pointing at a SplitForms submit endpoint

Receive submissions

We instantly capture and organize every submission in your inbox.

Submissions inbox with searchable leads and status pills

Route anywhere

Send data to email, spreadsheets, CRMs, webhooks, and 7,000+ apps.

Generic integration tiles for email, sheets, chat, CRM, automate, and webhook

No credit card required. Set up in under 60 seconds.

Connect & automate

Connect your favorite tools and automate everything

SplitForms works with the destinations you route to and the platforms you build on — from Slack and Sheets to WordPress, Shopify, and Next.js.

Connect your SplitForms form to Slack, Google Sheets, Mailchimp, Zapier and more

Trusted by indie teams and agencies shipping forms worldwide

PETAL/COKRAFT.DELINEAR-XBUILD.DEVSTUDIO 71MERIDIANFRAME&CO

Testimonials

Loved by developers shipping at every scale.

40 quotes on record — from indie hacks to agency migrations.

Questions

HTML Form questions, answered.

View all FAQs
What is an HTML form?

An HTML form is a <form> element that collects user input through controls like text fields, checkboxes, and buttons, then sends that data to a server URL specified by the action attribute using an HTTP method such as POST.

How do I make an HTML form actually send email?

Point the form's action at a form backend endpoint (like splitforms.com/api/submit) and include your access key as a hidden field. The backend receives the submission and forwards it to your inbox — you never expose your email address or run a server.

What is the difference between form action GET and POST?

GET appends the form data to the action URL as a query string and is meant for searches and read-only requests. POST sends the data in the request body and is the correct method for contact, registration, and order forms because it keeps large and sensitive data out of the URL.

Do I need a backend to receive an HTML form?

No. A hosted form backend like splitforms lets you post the form directly from static HTML. Submissions land in a dashboard and your inbox, with spam filtering, for 500 free submissions per month.

Why is my HTML form not submitting?

The most common causes are a field missing a name= attribute, a <button> with type="button" instead of submit, a JavaScript handler calling preventDefault(), or the action URL being wrong. Check the Network tab — a successful POST returns a 200 with JSON.

Simple pricing

Start free. Scale when you need more.

Choose a plan that fits your workflow — from a free form endpoint to full automations, exports, and higher submission limits.

Free

$0

Free forever

 
Best for testing

For side projects and indie devs.

  • 500 submissions / mo
  • Unlimited forms
  • Email notifications included
  • Honeypot spam filtering
  • Submissions dashboard
  • MCP setup stays free
  • No credit card required

3-Year

$59/ 36 months
was $99 · save 40% · new-user price

Pay $59. 3 years sorted.

  • 15,000 submissions / mo
  • Unlimited forms
  • Everything in Pro
  • Renews every 3 years
  • Long-term discount
  • Priority support included
  • Vote on the roadmap

No credit card required on Free • Cancel anytime